使用 API 和 AWS CLI 标签操作 - Amazon Athena

使用 API 和 AWS CLI 标签操作

使用以下标签操作在资源中添加、删除或列出标签。

API CLI 操作描述
TagResource tag-resource 在具有指定 ARN 的资源上添加或覆盖一个或多个标签。
UntagResource untag-resource 从具有指定 ARN 的资源中删除一个或多个标签。
ListTagsForResource list‑tags‑for‑resource 列出具有指定 ARN 的资源的一个或多个标签。
在创建资源时添加标签

要在创建工作组或数据目录时添加标签,请将 tags 参数与 CreateWorkGroupCreateDataCatalog API 操作结合使用,或者将该参数与 AWS CLI create-work-groupcreate-data-catalog 命令结合使用。

使用 API 操作管理标签

以下示例说明如何使用标签 API 操作来管理工作组和数据目录上的标签。这些示例采用的是 Java 编程语言。

以下示例将两个标签添加到工作组 workgroupA 中:

List<Tag> tags = new ArrayList<>(); tags.add(new Tag().withKey("tagKey1").withValue("tagValue1")); tags.add(new Tag().withKey("tagKey2").withValue("tagValue2")); TagResourceRequest request = new TagResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA") .withTags(tags); client.tagResource(request);

以下示例将两个标签添加到数据目录 datacatalogA 中:

List<Tag> tags = new ArrayList<>(); tags.add(new Tag().withKey("tagKey1").withValue("tagValue1")); tags.add(new Tag().withKey("tagKey2").withValue("tagValue2")); TagResourceRequest request = new TagResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA") .withTags(tags); client.tagResource(request);
注意

请不要将重复的标签键添加到同一资源中。如果这样操作,Athena 会发布一条错误消息。如果在单独的 TagResource 操作中使用现有标签键标记工作组,则新的标签值将覆盖旧值。

以下示例从工作组 workgroupA 中删除 tagKey2

List<String> tagKeys = new ArrayList<>(); tagKeys.add("tagKey2"); UntagResourceRequest request = new UntagResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA") .withTagKeys(tagKeys); client.untagResource(request);

以下示例从数据目录 datacatalogA 中删除 tagKey2

List<String> tagKeys = new ArrayList<>(); tagKeys.add("tagKey2"); UntagResourceRequest request = new UntagResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA") .withTagKeys(tagKeys); client.untagResource(request);

以下示例列出了工作组 workgroupA 的标签:

ListTagsForResourceRequest request = new ListTagsForResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"); ListTagsForResourceResult result = client.listTagsForResource(request); List<Tag> resultTags = result.getTags();

以下示例列出了数据目录 datacatalogA 的标签:

ListTagsForResourceRequest request = new ListTagsForResourceRequest() .withResourceARN("arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"); ListTagsForResourceResult result = client.listTagsForResource(request); List<Tag> resultTags = result.getTags();

使用 AWS CLI 管理标签

以下示例说明如何使用 AWS CLI 创建和管理数据目录上的标签。

tag-resource 命令可向指定资源添加一个或多个标签。

语法

aws athena tag-resource --resource-arn arn:aws:athena:region:account_id:datacatalog/catalog_name --tags Key=string,Value=string Key=string,Value=string

--resource-arn 参数指定要将标签添加到的资源。--tags 参数指定要作为标签添加到资源的用空格分隔的键/值对列表。

以下示例将标签添加到 mydatacatalog 数据目录中。

aws athena tag-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog --tags Key=Color,Value=Orange Key=Time,Value=Now

要显示结果,请使用 list-tags-for-resource 命令。

有关在使用 create-data-catalog 命令时添加标签的信息,请参阅 注册目录:Create-data-catalog

list-tags-for-resource 命令将列出指定资源的标签。

语法

aws athena list-tags-for-resource --resource-arn arn:aws:athena:region:account_id:datacatalog/catalog_name

--resource-arn 参数指定将列出其标签的资源。

以下示例列出了 mydatacatalog 数据目录的标签。

aws athena list-tags-for-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog

以下示例结果采用 JSON 格式。

{ "Tags": [ { "Key": "Time", "Value": "Now" }, { "Key": "Color", "Value": "Orange" } ] }

untag-resource 命令将从指定资源中删除指定的标签键及其关联的值。

语法

aws athena untag-resource --resource-arn arn:aws:athena:region:account_id:datacatalog/catalog_name --tag-keys key_name [key_name ...]

--resource-arn 参数指定从中删除标签的资源。--tag-keys 参数采用一组用空格分隔的键名称。对于指定的每个键名称,untag-resource 命令将同时删除键及其值。

以下示例从 mydatacatalog 目录资源中删除 ColorTime 键及其值。

aws athena untag-resource --resource-arn arn:aws:athena:us-east-1:111122223333:datacatalog/mydatacatalog --tag-keys Color Time