如何使用python-boto3检查所有具有特定标记值的服务器的ssm连接状态



我想用一个特定的标记检查所有服务器的ssm连接状态。我正在使用boto3模块get_connection_status,如下所示。

# import statements not mentioned
filter= [{'Name':'tag:Name', 'Values': ['Linux']}]
def script(event, context):
for each_ins in ec2_client.describe_instances(Filters=filter)['Reservations']:
for inst_id in each_ins['Instances']:
try:
response = ssm_client.get_connection_status(Target=[inst_id['InstanceId']])
pprint(inst_id['InstanceId'] + 'response')
except Exception as e:
print(e)

但是,get_connection_status函数只接受字符串,不接受列表。因此,我得到了以下错误。我该怎么摆脱这个?

{"ExecutionLog":"参数验证失败:参数Target的类型无效,值:['i-123xxxxxxxx'],类型:<类"列表">,有效类型:<类"str">"}

您使用的是list,而不是string。应该是:

ssm_client.get_connection_status(Target=inst_id['InstanceId'])

最新更新