Resource Groups examples using AWS CLI - AWS Command Line Interface

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-query file://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-query file://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 \ --configuration file://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 \ --arn arn: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 \ --keys QueryType

出力:

{ "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」を参照してください。