如何使用 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'])