我想从实例ID运行describe_instance_status,实例ID在类似的lambda函数中从describe_instances返回/但获得参数错误
代码是:
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,
],
)
错误是:
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,
InstanceIds
期望一个列表,而instance_ids
已经是一个列表。所以你可以这样做:
response = client.describe_instance_status(
InstanceIds=instance_ids
)