使用 boto3 describe_instances 获得错误的实例数

Getting wrong number of instances with boto3 describe_instances

我有一个描述 AWS 账户中 运行 实例的 lambda 函数,但是当我使用 Auto Scaling 扩展实例时,Lambda 函数返回错误数量的实例。 要检查这个:

  1. 我使用了相同的逻辑并创建了一个 CLI 命令,CLI 命令为我提供了正确数量的实例。 CLI 命令: aws ec2 describe-instances --filters Name=instance-state-name,Values=运行 --query 'Reservations[].Instances[].{Instance:InstanceId}' --output json --region -eu-west-1

  2. 之后创建了一个 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],您只能从该列表中获取第一个实例。我建议迭代该列表。