Naeem
Naeem

Reputation: 227

Parameters Validation error Lambda function

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

Answers (1)

Marcin
Marcin

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

Related Questions