python - 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。
aws ssm send-command \
--document-name "AWS-ConfigureAWSPackage" \
--instance-ids "i-00000000000000" \
--parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'
推荐阅读
- javascript - 我的客户出现错误,但不是来自我的客户
- c++ - C ++地址中的成员访问未对齐
- kdb - 使用 kdb 生成唯一随机数列表,其中数字不应与列表中的数字索引相同
- python - python:获取操作系统的 argv[0],而不是 sys.argv[0]
- python - 抓取的空链接被忽略
- php - 每个用户只处理 5 个请求的 PHP api
- node.js - 找不到 64 位 Oracle 客户端库:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”
- java - 制作五张牌最佳手牌的方法
- arrays - 如何在 Mongodb 的旧版本中获取数组元素的索引?
- python - 尝试使用 python 从 API 请求中解析 JSON