

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Device Farm リソースのタギング
<a name="tagging"></a>

AWS Device Farm は AWS Resource Groups Tagging API と連携します。この API を使用すると、*タグ*で AWS アカウントのリソースを管理できます。プロジェクトやテスト実行などのリソースにタグを追加できます。

タグを使用して以下のことができます:
+ 独自のコスト構造を反映するように AWS 請求情報を整理します。そのためには、AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウント請求書を取得します。次に、結合したリソースのコストを見るには、同じタグキー値のリソースに従って請求書情報を整理します。例えば、複数のリソースにアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスに渡るそのアプリケーションの合計コストを確認できます。詳細については、「*AWS の請求情報とコスト管理*」の「[コスト配分とタギング](https://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。
+ IAM ポリシーを通じてアクセスをコントロールします。そのためには、タグ値条件を使用してリソースまたはリソースのセットへのアクセスを許可するポリシーを作成します。
+ タグとして特定プロパティ (テストに使用されたブランチなど) が設定された実行を識別および管理します。

 リソースのタギングの詳細については、「[タギングベストプラクティス](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)」ホワイトペーパーを参照してください。

**Topics**
+ [

## リソースのタギング
](#tagging-resources)
+ [

## タグによるリソースの検索
](#tagging-looking-up-resources)
+ [

## リソースからのタグの削除
](#tagging-removing-tags)

## リソースのタギング
<a name="tagging-resources"></a>

AWS Resource Group Tagging API を使用すると、リソースのタグを追加、削除、または変更できます。詳細については、「[AWS Resource Group Tagging API リファレンス](https://docs.aws.amazon.com//resourcegroupstagging/latest/APIReference/Welcome.html)」を参照してください。

リソースにタグ付けするには、`resourcegroupstaggingapi` エンドポイントから [https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_TagResources.html](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_TagResources.html) オペレーションを使用します。このオペレーションでは、サポートされるサービスから ARN のリストとキー値ペアのリストを取得します。値はオプションです。空の文字列は、そのタグに値がないことを示します。例えば、以下の Python のサンプルタグでは、一連のプロジェクト ARN にタグ `build-config` を付けて、値 `release` を指定しています:

```
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"})
```

タグ値は必須ではありません。値のないタグを設定するには、値を指定するときに空の文字列 (`""`) を使用します。タグは 1 つの値のみ保持できます。タグがリソースに対して保持する以前の値は、新しい値で上書きされます。

## タグによるリソースの検索
<a name="tagging-looking-up-resources"></a>

タグによりリソースを検索するには、`resourcegrouptaggingapi` エンドポイントから `GetResources` オペレーションを使用します。このオペレーションは一連のフィルターを受け取りますが、いずれも必須ではなく、指定された条件に一致するリソースを返します。フィルタがない場合、すべてのタグ付きリソースが返されます。`GetResources` オペレーションでは、以下の条件に基づいてリソースをフィルタリングできます。
+ タグ値
+ リソースタイプ (`devicefarm:run` など)

詳細については、「[AWS Resource Group Tagging API リファレンス](https://docs.aws.amazon.com//resourcegroupstagging/latest/APIReference/Welcome.html)」を参照してください。

以下の例では、値が `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"]}
                                ])
```

## リソースからのタグの削除
<a name="tagging-removing-tags"></a>

タグを削除するには、削除するリソースとタグのリストを指定し、`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"])
```