繁体   English   中英

仅使用 ResourceGroupTaggingAPI 获取现有资源

[英]Only get existing resources with ResourceGroupTaggingAPI

我正在使用 AWS ResourceGroupTagginApi(get-resources 命令, https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html )列出我账户中的所有资源并检查是否标签是按照我的意愿设置的。

不,我注意到 get-resources 命令还返回我已经删除的资源。

ResourceGroupTagginApi 对我的好处是,我可以使用一个命令获取所有资源和标签,而且我不必调用服务特定的 api(我必须为每个服务单独实现)。

如何只返回没有被删除的资源? 或者如何在不使用服务特定 API 的情况下过滤掉已经删除的资源?

我想这样做,但找不到办法。 由于我的雇主有一份 AWS 支持合同,我为此提出了一张罚单; 回应的重要一点是:

请注意,目前这是资源组标记的一个已知问题,调用 get-resources 时仍会返回过时/已删除的资源标记。 我已将您的案例添加到已知问题中,以便更好地确定开发的优先级。

所以希望这可能会在未来得到解决。

我也经历过同样的“悬挂标签”不当行为, 在 repost.awsboto3 项目中有提及 在我的例子中,我有一些额外的数据,因为我使用脚本试图在执行 IaC 销毁进程后检查实际状态:

  echo "Scanning account for profile ${AWS_PROFILE} for all resources.."
  REGIONS="us-east-1 us-east-2 us-west-1 us-west-2"
  for _REGION in $REGIONS ; do
    printf "Dumping all resources in ${GREEN}${_REGION}${RESET} for profile ${AWS_PROFILE} into file: all-resources-in-${GREEN}${_REGION}${RESET}.json.."
    aws resourcegroupstaggingapi get-resources --region $_REGION > all-resources-in-${_REGION}.json
    echo ". found ${GREEN}$(grep ResourceARN all-resources-in-${_REGION}.json | wc -l) ${RESET}ResourceARNs"
  done                                                                                                                                                                                                                                                                                                                                                                              

我对此处对话的唯一补充是,似乎有一个清晰的模式,即删除后似乎只有一些资源会保留下来。 在我当前的项目中,我只注意到以下带有“粘性标签”的资源:

  1. NAT网关
  2. 安全组

...其中,1. NAT 网关是最粘性的。 我经常观察到安全组首先从列表中消失,然后是 NAT 网关。 也许这是关于根本原因的暗示,或者这是一个转移注意力的问题。

请注意,这是在一个 terraform 项目中创建/销毁当然只是 AWS 资源类型的一小部分,但它至少包括:VPC、子网、RT、IGW、NatGw、SG、ACL、EC2、EKS、托管节点组、ElasticIps、LaunchTemplates、AutoscalingGroups 等。

因此,我建议您确定哪些资源类型在您的环境中始终“具有粘性”,并将其过滤掉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM