在API中标记AWS资源

时间:2016-09-08 09:29:22

标签: api amazon-web-services filter tags

我需要使用API​​获取特定于标记的所有资源。 AWS Config控制台中提供了类似的选项,但我无法在API中找到,其中我们可以在资源清单页面中指定标记并获取特定于该标记的所有资源。

1 个答案:

答案 0 :(得分:0)

没有一个命令可以获取所有资源。

每个服务都有自己的方式按标签列出资源。某些服务(例如EC2)支持基于标记值列出所有资源。

例如,将describe-tags与标记过滤器一起使用:

aws ec2 describe-tags --region us-east-1 \
  --filters Name=tag:Name,Values=Test

但结果仅限于EC2资源。

其他服务(例如RDS)不支持基于标记值列出资源。相反,您需要检索所有资源,然后检索这些资源的标记,然后自己过滤。

aws rds describe-db-instances --region us-east-1 \
  --query 'DBInstances[*].DBInstanceIdentifier'

然后对于每个资源,您需要调用list-tags-for-resource来获取标记:

aws rds list-tags-for-resource --region us-east-1 \
  --resource-name arn:aws:rds:us-east-1:<account number>:db:<db instance id>

最后,你需要:

  1. 使用每种服务的方法为每种资源类型列出资源,
  2. 在您关注的每个地区重复此操作。
  3. 示例:

    * us-east-1
      * EC2
        * describe-tags
      * RDS
        * describe-db-instances
          * list-tags-for-resource
        * describe-db-snapshots
          * list-tags-for-resource
    * us-west-1
      * EC2
        * describe-tags
      * RDS
        * describe-db-instances
          * list-tags-for-resource
        * describe-db-snapshots
          * list-tags-for-resource
    

    ......等等。