翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
でのクエリベースのグループの作成 AWS Resource Groups
リソースグループクエリのタイプ
では AWS Resource Groups、クエリはクエリベースのグループの基盤です。リソースグループは、2 つのタイプのクエリのいずれかに基づくことができます。
- タグベース
-
タグベースのクエリには、
AWS::
形式で指定されているリソースタイプのリスト、およびタグが含まれます。タグは、企業内のリソースを識別およびソートするのに役立ちます。タグには、キーの値が含まれます。service
::resource
タグベースのクエリの場合、グループのメンバーにするリソースによって共有されるタグも指定します。例えば、アプリケーションのテストステージを実行するために使用しているすべての Amazon EC2インスタンスと Amazon S3 バケットを持つリソースグループを作成し、この方法でタグ付けされたインスタンスとバケットがある場合は、ドロップダウンリストから
AWS::EC2::Instance
と のAWS::S3::Bucket
リソースタイプを選択し、タグキー をタグ値Stage
で指定しますTest
。タグベースのリソースグループの
ResourceQuery
パラメータの構文には、次の要素が含まれます。-
Type
この要素は、このリソースグループを定義するクエリの種類を示します。タグベースのリソースグループを作成するには、値
TAG_FILTERS_1_0
を次のように指定します。"Type": "TAG_FILTERS_1_0"
-
Query
この要素は、リソースとの照合に使用される実際のクエリを定義します。これには、次の要素を持つJSON構造体の文字列表現が含まれます。
-
ResourceTypeFilters
この要素は、フィルターに一致するリソースタイプにのみ結果を制限します。次の値を指定できます。
-
"AWS::AllSupported"
は、クエリに一致し、Resource Groups サービスで現在サポートされている任意のタイプのリソースを結果に含めることができることを指定します。 -
"AWS::
— この形式のリソースタイプの指定文字列をカンマで区切ったリスト (service-id
::resource-type
"AWS::EC2::Instance"
など)。
-
-
TagFilters
この要素は、リソースにアタッチされたタグと比較されるキーと値の文字列のペアを指定します。フィルターに一致するタグキーと値を持つものがグループに含められます。各フィルターは、次の要素で構成されています。
-
"Key"
- キー名を持つ文字列。キー名がフィルターと一致するタグを持つリソースのみがグループのメンバーになります。 -
"Values"
- 指定したキーの値のカンマ区切りリストを含む文字列。一致するタグキーと、このリスト内の値と一致する値を持つリソースのみがグループのメンバーになります。
-
-
これらのJSON要素はすべて、 JSON構造の 1 行の文字列表現に結合する必要があります。例えば、次の例のJSON構造
Query
を持つ を考えてみましょう。このクエリは、「Stage」というタグを持つ Amazon EC2インスタンスのみを「Test」という値と照合することを目的としています。{ "ResourceTypeFilters": [ "AWS::EC2::Instance" ], "TagFilters": [ { "Key": "Stage", "Values": [ "Test" ] } ] }
これはJSON、次の単一行文字列として表され、
Query
要素の値として使用できます。JSON 構造体の値は二重引用符で囲まれた文字列である必要があるため、次に示すように、埋め込まれた二重引用符文字をエスケープするか、各文字の前にバックスラッシュを付けてスラッシュ文字をフォワードする必要があります。"Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"
次に、完全な
ResourceQuery
文字列は、次に示すようにコマンドCLIパラメータとして表されます。--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
-
- AWS CloudFormation スタックベース
-
AWS CloudFormation スタックベースのクエリでは、現在のリージョンのアカウントで AWS CloudFormation スタックを選択し、グループに含めるスタックでリソースタイプを選択します。クエリは 1 つの AWS CloudFormation スタックにのみ基づくことができます。
注記
AWS CloudFormation スタックには、他の AWS CloudFormation 「子」スタックを含めることができます。ただし、「親」スタックに基づくリソースグループは、子スタックのすべてのリソースをグループメンバーとして取得するわけではありません。リソースグループは、子スタックを親スタックのリソースグループに単一のグループメンバーとして追加し、拡張はしません。
Resource Groups は、次のいずれかのステータスを持つ AWS CloudFormation スタックに基づくクエリをサポートします。
-
CREATE_COMPLETE
-
CREATE_IN_PROGRESS
-
DELETE_FAILED
-
DELETE_IN_PROGRESS
-
REVIEW_IN_PROGRESS
重要
クエリでスタックの一部として直接作成されたリソースのみが、リソースグループに含まれます。 AWS CloudFormation スタックのメンバーによって後で作成されたリソースは、 グループのメンバーにはなりません。例えば、スタック AWS CloudFormation の一部として によって自動スケーリンググループが作成された場合、その自動スケーリンググループはグループのメンバーになります。ただし、そのオペレーションの一部としてその自動スケーリンググループによって作成された Amazon EC2インスタンスは、スタックベースのリソースグループのメンバーではありません。 AWS CloudFormation
AWS CloudFormation スタックに基づいてグループを作成し、スタックのステータスが などのグループクエリの基礎としてサポートされなくなったグループに変わる場合
DELETE_COMPLETE
、リソースグループは引き続き存在しますが、メンバーリソースはありません。 -
リソースグループを作成したら、グループのリソースに対してタスクを実行できます。
CloudFormation スタックベースのリソースグループの ResourceQuery
パラメータの構文には、次の要素が含まれます。
-
Type
この要素は、このリソースグループを定義するクエリの種類を示します。
AWS CloudFormation スタックベースのリソースグループを作成するには、次のように値 を指定します
CLOUDFORMATION_STACK_1_0
。"Type": "CLOUDFORMATION_STACK_1_0"
-
Query
この要素は、リソースとの照合に使用される実際のクエリを定義します。これには、次の要素を持つJSON構造体の文字列表現が含まれます。
-
ResourceTypeFilters
この要素は、フィルターに一致するリソースタイプにのみ結果を制限します。次の値を指定できます。
-
"AWS::AllSupported"
- クエリに一致する任意のタイプのリソースを結果に含めることができることを指定します。 -
"AWS::
- この形式のリソースタイプの指定文字列をカンマで区切ったリスト (service-id
::resource-type
"AWS::EC2::Instance"
など)。
-
-
StackIdentifier
この要素は、グループに含めるリソースを持つスタックの AWS CloudFormation Amazon リソースネーム (ARN) を指定します。
-
これらのJSON要素はすべて、 JSON構造の 1 行の文字列表現に結合する必要があります。例えば、次の例のJSON構造Query
を持つ を考えてみましょう。このクエリは、指定された AWS CloudFormation スタックの一部である Amazon S3 バケットのみを照合するためのものです。
{ "ResourceTypeFilters": [ "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/
MyCloudFormationStackName
/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE" }
これはJSON、次の単一行文字列として表され、 Query
要素の値として使用できます。JSON 構造体の値は二重引用符で囲まれた文字列である必要があるため、次に示すように、埋め込まれた二重引用符文字をエスケープするか、各文字の前にバックスラッシュを付けてスラッシュ文字をフォワードする必要があります。
"Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"
次に、完全なResourceQuery
文字列は、次に示すようにコマンドCLIパラメータとして表されます。
--resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"}'