【问题标题】:Inverse search in AWS Lambda using Python使用 Python 在 AWS Lambda 中进行反向搜索
【发布时间】:2017-07-17 21:49:06
【问题描述】:

我正在尝试获取所有未附加到自动缩放组的实例。自动缩放组中的所有实例都有一个标签 aws:autoscaling:groupName。我可以通过以下方式获取这些实例:

reservations = ec.describe_instances(
    Filters=[
        # Instances in autoscaling group
        {'Name': 'tag-key', 'Values': ['aws:autoscaling:groupName']},
        # Instances should be in running mode
        {'Name': 'instance-state-name', 'Values': ['running']}
    ]
).get(
    'Reservations', []
)

instances = sum(
[
    [i for i in r['Instances']]
    for r in reservations
], [])

print "Number of the instances in autoscaling: %d" % len(instances)

但我真正需要的是不在自动缩放中的实例。由于 AWS 控制台中有 inverse search,我希望 Python 中也有。

【问题讨论】:

    标签: python amazon-ec2 aws-lambda aws-sdk


    【解决方案1】:

    以下代码可以为您完成。迄今为止,boto 中没有直接反向搜索选项。希望有一天,有人会添加该选项:)

    https://github.com/boto/boto3/issues/173

    reservations = ec.describe_instances(
        Filters=[
            # Instances should be in running mode
            {'Name': 'instance-state-name', 'Values': ['running']}
        ]
    )
    
    Count=0
    for Instances in reservations['Reservations']:
        for Instance in Instances['Instances']:
            if "aws:autoscaling:groupName" not in str(Instance):
                # your logic on servers without AutoScaling Group goes here
                Count=Count+1
    
    print "Number of the instances Without autoscaling: ", Count
    

    【讨论】:

    • # your logic on servers without AutoScaling Group goes here”是指我将如何处理不在 AS 组中的实例? (例如,为其卷创建快照)只要确保。
    • 没错。如果您正在尝试自动化快照,您可以查看我的 git hub 项目。 (github.com/bijohnvincent/ScheduleBackupLambda)。该项目用于基于标签调度 AMI 和快照。您可以“观看”该项目,因为我会在有时间时添加更多选项。
    猜你喜欢
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多