如何使用 python boto3 检查具有特定标记值的所有服务器的 ssm 连接状态
How to check the ssm connection status of all the servers with a specific tag value using python boto3
我想检查所有带有特定标签的服务器的 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-123xxxxxxxxx'],类型:,有效类型:
"}
您使用的是 list
,而不是 string
。应该是:
ssm_client.get_connection_status(Target=inst_id['InstanceId'])
我想检查所有带有特定标签的服务器的 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-123xxxxxxxxx'],类型:
您使用的是 list
,而不是 string
。应该是:
ssm_client.get_connection_status(Target=inst_id['InstanceId'])