我可以以编程方式找到所有未标记的资源吗?

问题描述 投票:1回答:2

AWS Web控制台中的标签编辑器使我可以搜索没有特定标签的“所有资源类型”。例如,我可以列出所有缺少标签“ environment”的内容。

我想将此作为定期检查运行,以强制未创建新的未标记资源。一些Boto代码(作为Lambda cron作业运行)似乎很合适。但是,Boto文档仅向我展示了如何查看特定的资源类型(例如 EC2实例)。

一般是否有用于询问标签的API?还是我需要枚举每种资源类型?

amazon-web-services boto
2个回答
3
投票

通常没有用于标签的API。您必须针对每种服务类型执行此操作。没有那么困难。我有一个执行(通过S3 PutObject / CloudTrail)的Lambda,它检查新创建的实例并在需要时对其进行标记。由于CloudTrail监视大多数AWS服务,因此很容易将其扩展为其他类型的AWS服务。但是,如果要查找所有未加标签的资源,则必须编写Boto脚本并查询每种服务类型的标签。


0
投票

如果将来有人要问同样的问题,请在这里发布。

AWS资源组提供了这样的功能。您可以通过https://console.aws.amazon.com/resource-groups/home在AWS控制台中访问资源组。我没有找到如何在CLI中将--tag-filters与未标记值一起使用,因此使用jq来过滤掉结果。

这里是一个示例命令,用于获取所有没有环境标签的资源。

aws resourcegroupstaggingapi get-resources --tags-per-page 100 | jq '.ResourceTagMappingList[] | select(contains({Tags: [{Key: "environment"} ]}) | not)'

通过resourcegroupstaggingapi参考获取资源-https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html

有关资源组API的更多信息,请访问https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html

© www.soinside.com 2019 - 2024. All rights reserved.