【问题标题】:Return only instance ID, in Lambda using describe instance仅返回实例 ID,在 Lambda 中使用描述实例
【发布时间】:2021-05-25 12:02:49
【问题描述】:

我在 lambda 函数中运行以下脚本来使用标签描述 ec2 实例。但作为回应,我只需要实例 ID,而它会返回大量信息。请指导或以任何其他方式使用标签找出 ec2 insatnce id。谢谢

代码是:

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',
            ]
        },
    ],
    )

    return json.loads(json.dumps(running_instances, default=str))   

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda boto3


    【解决方案1】:

    要从 describe_instances 获取实例 ID,您必须遍历 Reservations,然后遍历 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'])
    
        return instance_ids
    

    【讨论】:

      猜你喜欢
      • 2016-07-08
      • 1970-01-01
      • 2011-05-12
      • 2017-07-12
      • 2017-03-16
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多