您好我希望获得Cloud Formation Stack Status我尝试使用下面的代码它打印堆栈对象中的所有属性但我只需要 StackStatus 请检查代码和响应和帮助我要克服这一点。 提前赞赏
import boto3
def lambda_handler(event, context):
client = boto3.client('cloudformation')
stack = client.describe_stacks(StackName='m6bf2b178-3bd2-ac06-88ef-
06545ba3fc74')
print(stack['Stacks'])
回应是:
" [{' StackId':' arn:aws:cloudformation:us-east-1:*********:stack / m6bf2b178-3bd2- ac06-88ef-06545ba3fc74 / 10bc3e30-198f-11e8-bec2-50faeaee4499',' StackName':' m6bf2b178-3bd2-ac06-88ef-06545ba3fc74','描述& #39;:' AWS CloudFormation示例模板EC2InstanceWithSecurityGroupSample:创建运行Amazon Linux AMI的Amazon EC2实例。根据运行堆栈的区域选择AMI。此示例为实例创建EC2安全组,以便为您提供SSH访问权限。此模板创建Amazon EC2实例。如果您使用此模板创建堆栈,则需要为您使用的AWS资源付费。','参数':[{' ParameterKey':' KeyName&#39 ;,' ParameterValue':'测试'},{' ParameterKey':' InstanceType',' ParameterValue':& #39; t2.micro'}],' CreationTime&#39 ;: datetime.datetime(2018,2,24,18,18,8,756000,tzinfo = tzlocal()),' RollbackConfiguration':{},' StackStatus':' CREATE_COMPLETE' ,' DisableRollback':False,' NotificationARNs&# 39;:[],'输出':[{' OutputKey':' InstanceId',' OutputValue':' i- 04dd2a73e99f8d3d1','说明':'新创建的EC2实例的InstanceId'},{' OutputKey':' PublicIP',& #39; OutputValue':' 34.227.162.158','说明':'新创建的EC2实例的公共IP地址'},{&# 39; OutputKey':' AZ',' OutputValue':& #39; us-east-1a','说明':'新创建的EC2实例的可用区'},{' OutputKey':&# 39; PublicDNS',' OutputValue':' ec2-34-227-162-158.compute-1.amazonaws.com','说明': '新创建的EC2实例的公共DNSName'}],'标记':[],' EnableTerminationProtection':False}]"
答案 0 :(得分:0)
由于您作为响应得到的是字典列表,您可以使用以下行访问堆栈状态:
stack_status = stack['Stacks'][0]['StackStatus']
print(stack_status)
它应该输出:
CREATE_COMPLETE