使用 boto3 describe_instances 获得错误的实例数
Getting wrong number of instances with boto3 describe_instances
我有一个描述 AWS 账户中 运行 实例的 lambda 函数,但是当我使用 Auto Scaling 扩展实例时,Lambda 函数返回错误数量的实例。
要检查这个:
我使用了相同的逻辑并创建了一个 CLI 命令,CLI 命令为我提供了正确数量的实例。
CLI 命令:
aws ec2 describe-instances --filters Name=instance-state-name,Values=运行 --query 'Reservations[].Instances[].{Instance:InstanceId}' --output json --region -eu-west-1
之后创建了一个 python 脚本,我在服务器中执行了该脚本,但它给出了与 lambda 函数相同的答案。
放置 Lambda 函数代码:
client = boto3.client('ec2',region_name = 'eu-west-1')
response_dict = client.describe_instances(Filters=[
{
'Name': 'instance-state-name',
'Values':['running']
}
])
instances_list = response_dict['Reservations']
result_dict={}
for instance_dict in instances_list:
instanceDetailsresult_dict = {}
instance_role=None
instance = instance_dict['Instances'][0]
instanceId = instance['InstanceId']
print(instanceId)
注意:
这只是一个代码片段,所有库都包括在内。
这是一个列表:instance_dict['Instances'][0]
,您只能从该列表中获取第一个实例。我建议迭代该列表。
我有一个描述 AWS 账户中 运行 实例的 lambda 函数,但是当我使用 Auto Scaling 扩展实例时,Lambda 函数返回错误数量的实例。 要检查这个:
我使用了相同的逻辑并创建了一个 CLI 命令,CLI 命令为我提供了正确数量的实例。 CLI 命令: aws ec2 describe-instances --filters Name=instance-state-name,Values=运行 --query 'Reservations[].Instances[].{Instance:InstanceId}' --output json --region -eu-west-1
之后创建了一个 python 脚本,我在服务器中执行了该脚本,但它给出了与 lambda 函数相同的答案。
放置 Lambda 函数代码:
client = boto3.client('ec2',region_name = 'eu-west-1')
response_dict = client.describe_instances(Filters=[
{
'Name': 'instance-state-name',
'Values':['running']
}
])
instances_list = response_dict['Reservations']
result_dict={}
for instance_dict in instances_list:
instanceDetailsresult_dict = {}
instance_role=None
instance = instance_dict['Instances'][0]
instanceId = instance['InstanceId']
print(instanceId)
注意: 这只是一个代码片段,所有库都包括在内。
这是一个列表:instance_dict['Instances'][0]
,您只能从该列表中获取第一个实例。我建议迭代该列表。