我需要从我的 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' object has no attribute '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}
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
看起来这是 API 中的错误。解决方法是暂时使用 ListTagsForResourceRequest() 调用,它会正确返回集群的标签。
ListTagsForResourceRequest tagRequest = new ListTagsForResourceRequest().withResourceArn(clusterArn);
ListTagsForResourceResult tagResult = amazonECS.listTagsForResource(tagRequest);
List<Tag> tagList = tagResult.getTags();
添加回答
举报
0/150
提交
取消