でのクエリベースのグループの作成 AWS Resource Groups - AWS Resource Groups

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

でのクエリベースのグループの作成 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\"}'