【问题标题】:how to get the instance ids in a autoscaling group using AWS Lambda function Python如何使用 AWS Lambda 函数 Python 获取自动缩放组中的实例 ID
【发布时间】:2021-08-06 10:31:43
【问题描述】:

我是编码新手 我想使用 AWS lambda 函数获取自动缩放组的实例 ID

【问题讨论】:

  • 您应该只发布问题的答案。

标签: python amazon-web-services aws-lambda aws-auto-scaling


【解决方案1】:

您可以使用此 boto3 客户端方法获取自动缩放组中的实例 ID。

import boto3
client = boto3.client('autoscaling')


def lambda_handler(event, context):
    response = client.describe_auto_scaling_groups(
        AutoScalingGroupNames=[
            'string',
        ],
        MaxRecords=50
    )
    instances = response['AutoScalingGroups'][0]['Instances']
    for i in range(len(instances)):
      print(instances[i]['InstanceId'])

如果你有超过 1 个自动缩放组,那么你必须保持这一行循环:

response['AutoScalingGroups'][0]['Instances']

用循环变量替换 '0'

如果您想从回复中获得更多信息:

这是此方法返回的完整响应。

{
    'AutoScalingGroups': [
        {
            'AutoScalingGroupName': 'string',
            'AutoScalingGroupARN': 'string',
            'LaunchConfigurationName': 'string',
            'LaunchTemplate': {
                'LaunchTemplateId': 'string',
                'LaunchTemplateName': 'string',
                'Version': 'string'
            },
            'MixedInstancesPolicy': {
                'LaunchTemplate': {
                    'LaunchTemplateSpecification': {
                        'LaunchTemplateId': 'string',
                        'LaunchTemplateName': 'string',
                        'Version': 'string'
                    },
                    'Overrides': [
                        {
                            'InstanceType': 'string',
                            'WeightedCapacity': 'string',
                            'LaunchTemplateSpecification': {
                                'LaunchTemplateId': 'string',
                                'LaunchTemplateName': 'string',
                                'Version': 'string'
                            }
                        },
                    ]
                },
                'InstancesDistribution': {
                    'OnDemandAllocationStrategy': 'string',
                    'OnDemandBaseCapacity': 123,
                    'OnDemandPercentageAboveBaseCapacity': 123,
                    'SpotAllocationStrategy': 'string',
                    'SpotInstancePools': 123,
                    'SpotMaxPrice': 'string'
                }
            },
            'MinSize': 123,
            'MaxSize': 123,
            'DesiredCapacity': 123,
            'DefaultCooldown': 123,
            'AvailabilityZones': [
                'string',
            ],
            'LoadBalancerNames': [
                'string',
            ],
            'TargetGroupARNs': [
                'string',
            ],
            'HealthCheckType': 'string',
            'HealthCheckGracePeriod': 123,
            'Instances': [
                {
                    'InstanceId': 'string',
                    'InstanceType': 'string',
                    'AvailabilityZone': 'string',
                    'LifecycleState': 'Pending'|'Pending:Wait'|'Pending:Proceed'|'Quarantined'|'InService'|'Terminating'|'Terminating:Wait'|'Terminating:Proceed'|'Terminated'|'Detaching'|'Detached'|'EnteringStandby'|'Standby'|'Warmed:Pending'|'Warmed:Pending:Wait'|'Warmed:Pending:Proceed'|'Warmed:Terminating'|'Warmed:Terminating:Wait'|'Warmed:Terminating:Proceed'|'Warmed:Terminated'|'Warmed:Stopped'|'Warmed:Running',
                    'HealthStatus': 'string',
                    'LaunchConfigurationName': 'string',
                    'LaunchTemplate': {
                        'LaunchTemplateId': 'string',
                        'LaunchTemplateName': 'string',
                        'Version': 'string'
                    },
                    'ProtectedFromScaleIn': True|False,
                    'WeightedCapacity': 'string'
                },
            ],
            'CreatedTime': datetime(2015, 1, 1),
            'SuspendedProcesses': [
                {
                    'ProcessName': 'string',
                    'SuspensionReason': 'string'
                },
            ],
            'PlacementGroup': 'string',
            'VPCZoneIdentifier': 'string',
            'EnabledMetrics': [
                {
                    'Metric': 'string',
                    'Granularity': 'string'
                },
            ],
            'Status': 'string',
            'Tags': [
                {
                    'ResourceId': 'string',
                    'ResourceType': 'string',
                    'Key': 'string',
                    'Value': 'string',
                    'PropagateAtLaunch': True|False
                },
            ],
            'TerminationPolicies': [
                'string',
            ],
            'NewInstancesProtectedFromScaleIn': True|False,
            'ServiceLinkedRoleARN': 'string',
            'MaxInstanceLifetime': 123,
            'CapacityRebalance': True|False,
            'WarmPoolConfiguration': {
                'MaxGroupPreparedCapacity': 123,
                'MinSize': 123,
                'PoolState': 'Stopped'|'Running',
                'Status': 'PendingDelete'
            },
            'WarmPoolSize': 123
        },
    ],
    'NextToken': 'string'
}

要了解更多信息,请参阅此文档:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling.html#AutoScaling.Client.describe_auto_scaling_groups

【讨论】:

    【解决方案2】:

    您可以尝试使用 boto3 库并使用此处提到的 API 获取信息: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling.html#AutoScaling.Client.describe_auto_scaling_instances

    这样的东西可以工作

    import boto3
    import json
    
    client = boto3.client('autoscaling')
    
    
    def lambda_handler(event, context):
     get_response = client.describe_auto_scaling_instances(
                     InstanceIds= '*Your Autoscaling Instance Id*'
                     )
    
     instance_id = get_response['AutoScalingInstances'][0]['InstanceId']
      
    

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 2017-09-03
      • 2017-11-15
      • 2021-02-24
      相关资源
      最近更新 更多