You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过AWS Config获取资源后,如何获取各类资源的标签?

无需构造ARN获取AWS Config资源标签的简便方案

直接使用AWS Resource Groups Tagging API的get_resources接口即可,不用手动构造ARN或初始化多服务客户端,具体操作如下:

  1. 给Lambda执行角色添加tag:GetResources权限,确保能调用该API。
  2. 将list_discovered_resources返回的资源按类型分组,批量传入get_resources查询标签:
    • 相同资源类型的ID可以批量查询,避免多次调用API。
    • Tagging API会自动处理资源类型与ID到ARN的映射,无需你手动构造。

示例Python代码

import boto3

def lambda_handler(event, context):
    config_client = boto3.client('config')
    tagging_client = boto3.client('resourcegroupstaggingapi')

    # 获取Config发现的资源列表(这里可按需指定资源类型或遍历所有类型)
    discovered_resources = config_client.list_discovered_resources(
        resourceType='AWS::EC2::Instance'
    )['resourceIdentifiers']

    # 按资源类型分组ID,方便批量查询
    resource_groups = {}
    for res in discovered_resources:
        res_type = res['resourceType']
        resource_groups.setdefault(res_type, []).append(res['resourceId'])

    # 批量获取所有资源的标签(处理分页,单次最多查100个ID)
    resource_tags = {}
    for res_type, res_ids in resource_groups.items():
        paginator = tagging_client.get_paginator('get_resources')
        for page in paginator.paginate(ResourceTypeFilters=[res_type], ResourceIds=res_ids):
            for mapping in page['ResourceTagMappingList']:
                resource_tags[mapping['ResourceARN']] = mapping['Tags']

    # 后续业务逻辑处理
    return resource_tags

优势说明

  • 无需手动构造各类型资源的ARN,API自动完成映射
  • 仅需初始化一个Tagging API客户端,不用为EC2、S3等资源单独初始化客户端
  • 支持批量+分页查询,减少API调用次数,提升执行效率

内容的提问来源于stack exchange,提问作者DenCowboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:45:30