我正在尝试获取特定自动伸缩组的所有实例ID,因此我认为以下代码必须有效...但是它仅返回该自动伸缩组中所有实例的标签...为什么我没有得到实例ID? Boto3文档显示使用此代码可以获取组的全部信息,但是我仅获得标签...解决此问题的方法是什么?
import boto3
client = boto3.client('autoscaling')
def lambda_handler(event, context):
response = client.describe_auto_scaling_groups(
AutoScalingGroupNames=['tryautoscalegroup']
)
print(response)
答案 0 :(得分:0)
代码中的函数完全适合您的用例,即,它提供了该自动伸缩组的所有详细信息,这意味着它提供了所有实例及其负载平衡器和自动伸缩配置信息。指向您的问题,您将只想拥有实例ID,方法是解析describe_auto_scaling_groups(**kwargs)
函数之后得到的响应。
然后,通过解析诸如response["AutoScalingGroups"][0]["Instances"][0]["InstanceId"]
之类的json响应,您可以获取实例ID。
下面是整个lambda函数,它将打印您的自动伸缩组的实例ID。
import boto3
asg = boto3.client('autoscaling')
def lambda_handler(event, context):
response = asg.describe_auto_scaling_groups(
AutoScalingGroupNames=['myasgname']
)
print(response)
instances=response["AutoScalingGroups"][0]["Instances"]
#declare a empty list so that later we can append instance ids into this list
instanceids=[]
for i in instances:
instanceids.append(i["InstanceId"])
print instanceids
下面是您的响应json的示例:
{
'AutoScalingGroups': [
{
'AutoScalingGroupName': 'string',
'AutoScalingGroupARN': 'string',
'LaunchConfigurationName': 'string',
'LaunchTemplate': {
'LaunchTemplateId': 'string',
'LaunchTemplateName': 'string',
'Version': 'string'
},
'MinSize': 123,
'MaxSize': 123,
'DesiredCapacity': 123,
'DefaultCooldown': 123,
'AvailabilityZones': [
'string',
],
'LoadBalancerNames': [
'string',
],
'TargetGroupARNs': [
'string',
],
'HealthCheckType': 'string',
'HealthCheckGracePeriod': 123,
'Instances': [
{
'InstanceId': 'string',
'AvailabilityZone': 'string',
'LifecycleState': 'Pending'|'Pending:Wait'|'Pending:Proceed'|'Quarantined'|'InService'|'Terminating'|'Terminating:Wait'|'Terminating:Proceed'|'Terminated'|'Detaching'|'Detached'|'EnteringStandby'|'Standby',
'HealthStatus': 'string',
'LaunchConfigurationName': 'string',
'LaunchTemplate': {
'LaunchTemplateId': 'string',
'LaunchTemplateName': 'string',
'Version': 'string'
},
'ProtectedFromScaleIn': True|False
},
],
'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'
},
],
'NextToken': 'string'