问题描述
我正在尝试使用 boto3 接收堆栈资源 ARN 信息。 我尝试使用:
import boto3
client = boto3.resource('cloudformation',aws_access_key_id='xxxxxxxx',aws_secret_access_key='xxxxxxxxxxxx')
response = client.list_stack_resources(
StackName='ORG-ROLES')
我收到“AttributeError: 'cloudformation.ServiceResource' 对象没有属性 'list_stack_resources'” 这个Stack运行了9个资源,我想获取一个资源ARN信息。 希望你能帮助我。
解决方法
您混淆了 client-level 和 resource-level API。您需要使用其中之一。这是每个示例。
import boto3
session = boto3.Session(profile_name='xxxx',region_name='us-east-1')
STACK_NAME = 'ORG-ROLES'
# Use client-level API
client = session.client('cloudformation')
response = client.list_stack_resources(StackName=STACK_NAME)
print('Client API:',response['StackResourceSummaries'])
# Use resource-level API
resource = session.resource('cloudformation')
stack = resource.Stack(STACK_NAME)
print('Resource API:',list(stack.resource_summaries.all()))