猿问

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

我需要从我的 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}


开满天机
浏览 131回答 1
1回答

慕容708150

看起来这是 API 中的错误。解决方法是暂时使用 ListTagsForResourceRequest() 调用,它会正确返回集群的标签。&nbsp; &nbsp; ListTagsForResourceRequest tagRequest = new ListTagsForResourceRequest().withResourceArn(clusterArn);&nbsp; &nbsp; ListTagsForResourceResult tagResult = amazonECS.listTagsForResource(tagRequest);&nbsp; &nbsp; List<Tag> tagList = tagResult.getTags();
随时随地看视频慕课网APP

相关分类

Java
我要回答