标记 AWS Device Farm 资源 - AWS Device Farm

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

标记 AWS Device Farm 资源

AWS Device Farm 可与 AWS 资源组标记 API 结合使用。此 API 允许您使用标签管理 AWS 账户中的资源。您可以为资源添加标签,例如项目和测试运行。

您可以使用标签执行以下操作:

  • 组织 AWS 账单来反映您自身的成本结构。要执行此操作,请注册以获取包含标签密钥值的 AWS 账户账单。然后,如需查看组合资源的成本,请按有同样标签键值的资源组织您的账单信息。例如,您可以将某个应用程序名称用作几个资源的标签,然后组织账单信息,以便查看多个服务中使用该应用程序的总成本。有关更多信息,请参阅《关于 AWS 账单与成本管理》中的成本分配和标签

  • 通过 IAM 策略控制访问。为此,您需要使用标签值条件创建允许访问一个资源或一组资源的策略。

  • 标识和管理具有标签形式的特定属性的运行,例如指定用于测试的分支的属性。

有关标记资源的更多信息,请参阅标记最佳实践白皮书。

为资源添加标签

借助 AWS Resource Group Tagging API,您可以添加、删除或修改资源上的标签。有关更多信息,请参阅 AWS Resource Group Tagging API Reference

要标记资源,请使用 resourcegroupstaggingapi 终端节点中的 TagResources 操作。此操作会采用受支持的服务的 ARN 列表以及键值对列表。 值是可选的。空字符串表示该标签不应有值。例如,以下 Python 示例会为一系列项目 ARN 添加具有 release 值的 build-config 标签:

import boto3 client = boto3.client('resourcegroupstaggingapi') client.tag_resources(ResourceARNList=["arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655440000", "arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655441111", "arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655442222"] Tags={"build-config":"release", "git-commit":"8fe28cb"})

标签值不是必需的。要设置不带值的标签,请在指定值时使用空字符串 ("")。一个标签只能有一个值。标签对某个资源使用的任何先前值都将被新值覆盖。

按标签查找资源

要按标签查找资源,请使用 resourcegrouptaggingapi 终端节点中的 GetResources 操作。此操作会采用一系列筛选条件(也可以不采用筛选条件),并返回与给定条件匹配的资源。如果不采用筛选条件,则会返回所有带标签的资源。GetResources 操作允许您根据以下条件筛选资源

  • 标记值

  • 资源类型(例如 devicefarm:run

有关更多信息,请参阅 AWS Resource Group Tagging API Reference

以下示例使用具有 production 值的 stack 标签查找 Device Farm 桌面浏览器测试会话(devicefarm:testgrid-session 资源):

import boto3 client = boto3.client('resourcegroupstaggingapi') sessions = client.get_resources(ResourceTypeFilters=['devicefarm:testgrid-session'], TagFilters=[ {"Key":"stack","Values":["production"]} ])

从资源中删除标签

要删除标签,请使用 UntagResources 操作,并指定资源列表和要删除的标签:

import boto3 client = boto3.client('resourcegroupstaggingapi') client.UntagResources(ResourceARNList=["arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655440000"], TagKeys=["RunCI"])