에서 쿼리 기반 그룹 생성 AWS Resource Groups - AWS Resource Groups

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 쿼리 기반 그룹 생성 AWS Resource Groups

리소스 그룹 쿼리 유형

에서 AWS Resource Groups쿼리는 쿼리 기반 그룹의 기초입니다. 리소스 그룹은 두 가지 유형의 쿼리 중 하나에 기반할 수 있습니다.

태그 기반

태그 기반 쿼리에는 다음 형식의 AWS::service::resource 및 태그로 지정된 리소스 유형의 목록이 포함됩니다. 태그는 조직에서 리소스를 식별하고 분류하는 데 도움이 되는 키입니다. 태그에 키 값을 포함시킬 수도 있습니다.

태그 기반 쿼리의 경우 그룹의 구성원이고 싶은 리소스에서 공유된 태그도 지정합니다. 예를 들어, 애플리케이션의 테스트 단계를 실행하는 데 사용하는 모든 Amazon EC2 인스턴스와 Amazon S3 버킷이 포함된 리소스 그룹을 생성하려는 경우, 이러한 방식으로 태그가 지정된 인스턴스와 버킷이 있는 경우 드롭다운 목록에서 AWS::EC2::InstanceAWS::S3::Bucket 리소스 유형을 선택한 다음 태그 값이 1인 태그 키를 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"와 같은 형식의 resource-type 사양 문자열이 쉼표로 구분된 목록입니다.

    • TagFilters

      이 요소는 리소스에 연결된 태그와 비교되는 키/값 문자열 쌍을 지정합니다. 필터와 일치하는 태그 키와 값을 가진 항목은 그룹에 포함됩니다. 각 필터는 다음 요소로 구성됩니다.

      • "Key" - 키 이름이 있는 문자열. 필터와 일치하는 키 이름의 태그를 가진 리소스만 그룹의 구성원입니다.

      • "Values" - 지정된 키에 대해 쉼표로 구분된 값 목록이 포함된 문자열입니다. 일치하는 태그 키와 이 목록과 일치하는 값을 가진 리소스만 그룹의 구성원입니다.

이러한 모든 JSON 요소를 JSON 구조의 한 줄 문자열 표현으로 결합해야 합니다. 예를 들어, 다음 예제 JSON 구조체의 Query a를 생각해 보십시오. 이 쿼리는 태그가 “Stage”이고 값이 “Test”인 Amazon EC2 인스턴스만 매칭하기 위한 것입니다.

{ "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 스택을 선택한 다음 그룹에 포함하려는 스택의 리소스 유형을 선택합니다. 하나의 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 일부로 자동 스케일링 그룹을 생성한 경우 해당 자동 스케일링 그룹은 그룹의 구성원이 됩니다. 하지만 Auto Scaling 그룹에서 작업의 일부로 생성한 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"와 같은 형식의 resource-type 사양 문자열이 쉼표로 구분된 목록입니다.

    • StackIdentifier

      이 요소는 그룹에 포함하려는 리소스가 있는 AWS CloudFormation 스택의 Amazon 리소스 이름 (ARN) 을 지정합니다.

이 모든 JSON 요소를 결합해서 JSON 구조를 한 줄로 표현해야 합니다. 예를 들어, 다음 예제 JSON 구조체의 Query a를 생각해 보십시오. 이 쿼리는 지정된 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\"}'