boto3如何通过python脚本使用AWS SSM服务安装云监控代理



我正试图在多个ec2实例上安装云监视代理,然后在这些实例上配置内存指标。我可以通过这个链接手动完成。但我在不同地区有大约100多个ec2实例,因此我计划使用python-boto3包来实现自动化。以下是我正在尝试的代码

import boto3
ssm_client = boto3.client('ssm', region_name=region, aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
try:
ssm_resp = ssm_client.send_command(
InstanceIds=["i-0bb7f627b65157a5b"],
DocumentName="AWS-ConfigureAWSPackage",
Parameters={'action': ['install'], 'name': ['AmazonCloudWatchAgent']},
)
except Exception as e:
print(e)

以下是我在执行上述代码时得到的错误。An error occurred (InvalidParameters) when calling the SendCommand operation:我不确定什么是错误参数,我已经遵循了文档,但我不清楚是哪个参数导致了这个问题。

这可能很简单,就像在安装中不使用大写的"I"一样,但这只是猜测,因为我没有使用过这个特定的命令。这一点以及单引号和双引号,它们可能也有影响,也可能没有影响。我遇到过一些错误,从amis创建的一些ec2实例没有安装ssm,这也会引发一个错误,但我不认为这是InvalidParameters。

查看命令行文档:https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html

aws ssm send-command 
--document-name "AWS-ConfigureAWSPackage" 
--instance-ids "i-00000000000000" 
--parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'

最新更新