从Cost Explorer API返回的响应中提取资源ID可能有些棘手,因为响应不包含它。不过,您可以使用AWS关系数据库服务(RDS)的资源访问管理器(RAM)API来获取与AWS帐户相关联的资源ID的详细信息。以下是一个Python示例,它使用RAM API提取RDS实例的资源ID。
import boto3
ram_client = boto3.client('ram')
resource_share_arn = ''
principal = ''
response = ram_client.get_resource_shares(
resourceOwner='SELF',
resourceShareArns=[resource_share_arn],
principals=[principal]
)
if response['resourceShares'][0]['status'] != 'ACTIVE': # 如果资源共享状态不是活动,则抛出异常
raise Exception('ResourceShare is not active')
resources = response['resourceShares'][0]['resources']
for resource in resources:
if resource['type'] == 'RDS_DB_INSTANCE':
print('Resource ID: {}'.format(resource['resourceId']))
请确保将
替换为资源共享的ARN,并将
替换为具有访问权限的AWS用户或AWS帐户的ARN。此示例还假设您已配置单个资源共享,并且该共享包含了您想要提取资源ID的AWS RDS实例。如果您的环境不同,请将代码适当更改。
总的来说,通过使用RAM API,您可以轻松地从在您的AWS帐户中共享的一个或多个资源中提取资源ID。