I wanted to check the ssm connection status of all the servers with a specific tag. I am making use of the boto3 module get_connection_status as follows.
# 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)
However get_connection_status functions accepts only strings and not list. Hence I am getting the below error. How can I get rid of this?
{"ExecutionLog":"Parameter validation failed: Invalid type for parameter Target, value: ['i-123xxxxxxxxx'], type: <class 'list'>, valid types: <class 'str'> "}
CodePudding user response:
You are using a list
, not a string
. It should be:
ssm_client.get_connection_status(Target=inst_id['InstanceId'])