Resource Groups examples using AWS CLI
次のコード例は、Resource Groups で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。
トピック
アクション
次の例は、create-group
を使用する方法を説明しています。
- AWS CLI
-
例 1: タグベースのリソースグループを作成するには
次の
create-group
の例では、現在のリージョンに Amazon EC2 インスタンスのタグベースのリソースグループを作成します。これは、キーName
と値WebServers
でタグ付けされたリソースのクエリに基づいています。グループ名はtbq-WebServer
です。クエリは、 コマンドに渡される別の JSON ファイルにあります。aws resource-groups create-group \ --name
tbq-WebServer
\ --resource-queryfile://query.json
query.json
の内容:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" }
出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }
例 2: CloudFormation スタックベースのリソースグループを作成するには
次の
create-group
の例では、sampleCFNstackgroup
という名前の AWS CloudFormation スタックベースのリソースグループを作成します。クエリには、AWS Resource Groups でサポートされている指定された CloudFormation スタック内のすべてのリソースが含まれます。aws resource-groups create-group \ --name
cbq-CFNstackgroup
\ --resource-queryfile://query.json
query.json
の内容:{ "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" }
出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-east-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}' } }
詳細については、「AWS Resource Groups ユーザーガイド」の「グループの作成」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「CreateGroup
」を参照してください。
-
次のコード例は、delete-group
を使用する方法を示しています。
- AWS CLI
-
リソースグループの説明を更新するには
次の
delete-group
の例では、指定されたリソースグループを更新します。aws resource-groups delete-group \ --group-name
tbq-WebServer
出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer", "Name": "tbq-WebServer" } }
詳細については、「AWS Resource Groups ユーザーガイド」の「グループの削除」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteGroup
」を参照してください。
-
次の例は、get-group-query
を使用する方法を説明しています。
- AWS CLI
-
リソースグループにアタッチされたクエリを取得するには
次の
get-group-query
の例では、指定されたリソースグループにアタッチされたクエリを表示します。aws resource-groups get-group-query \ --group-name
tbq-WebServer
出力:
{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetGroupQuery
」を参照してください。
-
次の例は、get-group
を使用する方法を説明しています。
- AWS CLI
-
リソースグループに関する情報を取得するには
次の
get-group
の例では、指定したリソースグループに関する詳細を表示します。クエリをグループにアタッチするには、get-group-query
を使用します。aws resource-groups get-group \ --group-name
tbq-WebServer
出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer", "Description": "A tag-based query resource group of WebServers." } }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetGroup
」を参照してください。
-
次のコード例は、get-tags
を使用する方法を示しています。
- AWS CLI
-
リソースグループにアタッチされたタグを取得するには
次の
get-tags
の例では、指定されたリソースグループ (メンバーではなくグループ自体) にアタッチされたタグキーと値のペアを表示します。aws resource-groups get-tags \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
出力:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetTags
」を参照してください。
-
次のコード例は、list-group-resources
を使用する方法を示しています。
- AWS CLI
-
リソースグループ内のすべてのリソースを一覧表示するには
例 1: 次の
list-resource-groups
の例では、指定されたリソースグループの一部であるすべてのリソースを一覧表示します。aws resource-groups list-group-resources \ --group-name
tbq-WebServer
出力:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
例 2: 次の例では、'AWS::EC2::Instance' の 'resource-type' も持つグループ内のすべてのリソースを一覧表示します。
aws resource-groups list-group-resources --group-name tbq-WebServer --filters Name=resource-type,Values=AWS::EC2::Instance
-
API の詳細については、「AWS CLI コマンドリファレンス」の「ListGroupResources
」を参照してください。
-
次の例は、list-groups
を使用する方法を説明しています。
- AWS CLI
-
使用可能なリソースグループを一覧表示するには
次の
list-groups
の例では、すべてのリソースグループのリストを表示します。aws resource-groups list-groups
出力:
{ "GroupIdentifiers": [ { "GroupName": "tbq-WebServer", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer3" }, { "GroupName": "cbq-CFNStackQuery", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery" } ], "Groups": [ { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery", "Name": "cbq-CFNStackQuery" } ] }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「ListGroups
」を参照してください。
-
次の例は、list-resource-groups
を使用する方法を説明しています。
- AWS CLI
-
リソースグループ内のすべてのリソースを一覧表示するには
次の
list-resource-groups
の例では、指定されたリソースグループの一部であるすべてのリソースを一覧表示します。aws resource-groups list-group-resources \ --group-name
tbq-WebServer
出力:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「ListResourceGroups
」を参照してください。
-
次の例は、put-group-configuration
を使用する方法を説明しています。
- AWS CLI
-
リソースグループにサービス設定をアタッチするには
例 1: 次の
put-group-configuration
の例では、リソースグループにC5
またはM5
ファミリーのインスタンスの Amazon EC2 キャパシティ予約のみを含めるように指定しています。aws resource-groups put-group-configuration \ --group
MyTestGroup
\ --configurationfile://config.json
config.json
の内容:[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": [ "c5", "m5" ] }, { "Name": "any-host-based-license-configuration", "Values": [ "true" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ]
このコマンドが成功した場合、出力は生成されません。
詳細については、「リソースグループ API リファレンスガイド」の「リソースグループのサービス設定」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「PutGroupConfiguration
」を参照してください。
-
次のコード例は、search-resources
を使用する方法を示しています。
- AWS CLI
-
クエリに一致するリソースを検索するには
次の
search-resources
の例では、指定されたクエリに一致するすべての AWS リソースのリストを取得します。aws resource-groups search-resources \ --resource-query
file://query.json
query.json
の内容:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Patch Group\", \"Values\":[\"Dev\"]}]}" }
出力:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
-
API の詳細については、「AWS CLI コマンドリファレンス」の「SearchResources
」を参照してください。
-
次の例は、tag
を使用する方法を説明しています。
- AWS CLI
-
リソースグループにタグをアタッチするには
次の
tag
の例では、指定されたタグキーと値のペアを、指定されたリソースグループ (メンバーではなくグループ自体) にアタッチします。aws resource-groups tag \ --tags
QueryType=tags,QueryResources=ec2-instances
\ --arnarn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer
出力:
{ "Arn": "arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
詳細については、「AWS Resource Groups ユーザーガイド」の「タグの管理」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「Tag
」を参照してください。
-
次のコード例は、untag
を使用する方法を示しています。
- AWS CLI
-
リソースグループからタグを削除するには
次の
untags
の例では、メンバーではなくリソースグループ自体から指定したキーを持つタグを削除します。aws resource-groups untag \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
\ --keysQueryType
出力:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Keys": [ "QueryType" ] }
詳細については、「AWS Resource Groups ユーザーガイド」の「タグの管理」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「Untag
」を参照してください。
-
次の例は、update-group-query
を使用する方法を説明しています。
- AWS CLI
-
例 1: タグベースのリソースグループのクエリを更新するには
次の
update-group-query
の例では、指定されたタグベースのリソースグループにアタッチされたクエリを更新します。aws resource-groups update-group-query \ --group-name
tbq-WebServer
\ --resource-query '{"Type":"TAG_FILTERS_1_0", "Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}"}
'出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }
詳細については、「AWS Resource Groups ユーザーガイド」の「グループの更新」を参照してください。
例 2: CloudFormation スタックベースのリソースグループのクエリを更新するには
次の
update-group-query
の例では、指定された AWS CloudFormation スタックベースのリソースグループにアタッチされたクエリを更新します。aws resource-groups update-group-query \ --group-name
cbq-CFNstackgroup
\ --resource-query '{"Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}
'出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" } }
詳細については、「AWS Resource Groups ユーザーガイド」の「グループの更新」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「UpdateGroupQuery
」を参照してください。
-
次のコード例は、update-group
を使用する方法を示しています。
- AWS CLI
-
リソースグループの説明を更新するには
次の
update-group
例では、指定されたリソースグループの説明を更新します。aws resource-groups update-group \ --group-name
tbq-WebServer
\ --description"Resource group for all web server resources."
出力:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" "Description": "Resource group for all web server resources." } }
詳細については、「AWS Resource Groups ユーザーガイド」の「グループの更新」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「UpdateGroup
」を参照してください。
-