Python 3.x 在Boto3中使用SSM send_命令
我正在尝试创建一个lambda函数,它将关闭在EC2实例上运行的systemd服务。我认为从boto3模块使用ssm客户端可能是最好的选择,我考虑使用的特定命令是send_命令()。理想情况下,我希望使用Ansible关闭systemd服务。因此,我试图使用“AWS Applyansible Playbooks”,我在这里遇到了问题,似乎boto3 ssm客户端需要一些参数,我尝试了遵循boto3文档,但确实不清楚它希望我如何显示参数,我在“AWS Applyansible Playbooks”中找到了它要查找的参数文档-但是当我在代码中包含它们时,它告诉我参数无效。我还尝试访问AWS的GitHub存储库,因为我知道他们有时会访问,但他们没有任何关于send_命令()的内容。我上传了一篇文章,以防人们对我迄今为止所写的内容感兴趣,我肯定有兴趣了解其他人是如何通过boto3 python脚本使用ssm运行Ansible Playbook的。通过查看和您在中共享的代码,我可以看到。您需要添加Python 3.x 在Boto3中使用SSM send_命令,python-3.x,amazon-web-services,aws-lambda,boto3,amazon-ssm-agent,Python 3.x,Amazon Web Services,Aws Lambda,Boto3,Amazon Ssm Agent,我正在尝试创建一个lambda函数,它将关闭在EC2实例上运行的systemd服务。我认为从boto3模块使用ssm客户端可能是最好的选择,我考虑使用的特定命令是send_命令()。理想情况下,我希望使用Ansible关闭systemd服务。因此,我试图使用“AWS Applyansible Playbooks”,我在这里遇到了问题,似乎boto3 ssm客户端需要一些参数,我尝试了遵循boto3文档,但确实不清楚它希望我如何显示参数,我在“AWS Applyansible Playbooks”
“SourceType”:[“S3”]
,并且需要在源信息中有一个路径,如:
{
"path":"https://s3.amazonaws.com/path_to_directory_or_playbook_to_download"
}
因此,您需要调整全局变量S3\u DEVOPS\u ANSIBLE\u剧本
从doc链接看一看CLI示例,它应该会让您了解如何重新构造参数:
aws ssm create-association --name "AWS-ApplyAnsiblePlaybooks" \
--targets Key=tag:TagKey,Values=TagValue \
--parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_playbook_to_download\"}"],"InstallDependencies":["True_or_False"],"PlaybookFile":["file_name.yml"],"ExtraVariables":["key/value_pairs_separated_by_a_space"],"Check":["True_or_False"],"Verbose":["-v,-vv,-vvv, or -vvvv"]}' \
--association-name "name" --schedule-expression "cron_or_rate_expression"
是的,没错。。。谢谢