Reputation: 227
i want to run describe_instance_status from instance ID, instance id is returned from describe_instances in similar lambda function/ but getting paramater error
Code is:
import boto3
import json
from collections import defaultdict
region = 'us-east-1'
def lambda_handler(event, context):
client = boto3.client('ec2')
running_instances = client.describe_instances(
Filters=[
{
'Name': 'tag:orgid',
'Values': [
'demoxx',
]
},
],
)
instance_ids = []
for reservation in running_instances['Reservations']:
for instance in reservation['Instances']:
instance_ids.append(instance['InstanceId'])
response = client.describe_instance_status(
InstanceIds=[
instance_ids,
],
)
error is :
Parameter validation failed:
Invalid type for parameter InstanceIds[0], value: ['i-0519ad34bbd9954d'], type: <class 'list'>, valid types: <class 'str'>: ParamValidationError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 31, in lambda_handler
instance_ids,
Upvotes: 1
Views: 119
Reputation: 238827
InstanceIds
expcets a list and instance_ids
is already a list. So you can do the following:
response = client.describe_instance_status(
InstanceIds=instance_ids
)
Upvotes: 2