gpt4 book ai didi

java - 从 AWS ECS 集群获取标签返回空列表

转载 作者:行者123 更新时间:2023-12-02 01:58:59 26 4
gpt4 key购买 nike

我需要从我的 ECS 集群中读取标签。我通过 describeClusters() 调用成功列出了所有集群。然后我进行了 getTags() 调用,它错误地返回了一个空列表。

    List<Cluster> clusters = clusterDescriptionResult.getClusters();
for (Cluster cluster : clusters) {
String clusterArn = cluster.getClusterArn();
//System.out.println("Cluster: " + clusterArn);
List<Tag> tagList = cluster.getTags();

我想我一定做错了什么,所以作为测试,我用 Python 重写了代码。

    clusterList = ecsClient.list_clusters()
for clusterArn in clusterList["clusterArns"]:
tagListData = ecsClient.list_tags_for_resource(resourceArn=clusterArn)
tagList = tagListData["tags"]

(编辑:这段 Python 代码运行得很好——请参阅注释以了解为什么它最初不起作用)list_tags_for_resource() 宁愿抛出异常,而不是给我一个空列表:AttributeError:“ECS”对象没有属性“list_tags_for_resource”

此时,我不得不想...我是否有过时的软件包?根据我的 pom.xml,我正在使用版本 1.11.604 (Java) 或 boto3-1.9.202 botocore-1.12.202 (Python),据我所知,它们似乎是最新的(2019 年 8 月)。

编辑:我现在已经从命令行尝试过,并且确实有效:

    aws ecs list-tags-for-resource --resource-arn {cluster_arn}

最佳答案

看起来这是 API 中的一个错误。解决方法是暂时使用 ListTagsForResourceRequest() 调用,它可以正确返回集群的标签。

    ListTagsForResourceRequest tagRequest = new ListTagsForResourceRequest().withResourceArn(clusterArn);
ListTagsForResourceResult tagResult = amazonECS.listTagsForResource(tagRequest);
List<Tag> tagList = tagResult.getTags();

关于java - 从 AWS ECS 集群获取标签返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384857/

26 4 0