使用Boto的CloudFormation未列出堆栈资源

0 投票
1 回答
889 浏览
提问于 2025-04-18 17:52
cf_connection = boto.cloudformation.connect_to_region('us-east-1', aws_access_key_id='mykey',
                                                      aws_secret_access_key='mysecret')

resource = cf_connection.list_stack_resources(stack_id)
print resource
        "StackId": "arn:aws:cloudformation:myid", 
        "ResourceStatus": "CREATE_COMPLETE", 
        "ResourceType": "AWS::EC2::XYZ", 
        "Timestamp": "time", 
        "StackName": "mystack", 
        "PhysicalResourceId": "myphysical", 
        "LogicalResourceId": "myLogicalName"

这个列表里没有物理ID,给我的只是逻辑ID和类型。

另外,我该怎么过滤这个列表呢?

所有信息都可以在命令行界面(CLI)找到。

1 个回答

0

list_stack_resources 方法会返回一个包含 StackResourceSummary 对象的列表。每个对象都有以下几个属性:

  • 最后更新时间(last_updated_time)
  • 逻辑资源ID(logical_resource_id)
  • 物理资源ID(physical_resource_id)
  • 资源状态(resource_status)
  • 资源状态原因(resource_status_reason)
  • 资源类型(resource_type)

你可以使用这些属性来获取每个对象的详细信息。

试试这个代码:

import boto.cloudformation
conn = boto.cloudformation.connect_to_region('us-east-1', ...)

resources = conn.list_stack_resources(stack_id)
for resource in resources:
    print(resource.last_updated_time)
    print(resource.logical_resource_id)
    print(resource.physical_resource_id)
    print(resource.status)
    print(resource.resource_type)

然后告诉我你看到了什么。

撰写回答