首页 > 解决方案 > 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:我不确定什么是错误参数,我已按照文档进行操作,但我不清楚是哪个参数导致了此问题。

标签: pythonaws-sdkboto3amazon-cloudwatchaws-ssm

解决方案


这可能就像在安装中不使用大写“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"]}'

推荐阅读