Resource Groups 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Resource Groups 範例使用 AWS CLI

下列程式碼範例說明如何透過 AWS Command Line Interface 與 Resource Groups 搭配使用來執行動作及實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用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範例會建立名為的 AWS CloudFormation 堆疊型資源群sampleCFNstackgroup組。查詢包括指定 CloudFormation 堆疊中 AWS Resource Groups 支援的所有資源。

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:下面的示例列出了組中也具有 ':: EC2:AWS: Instance' 的「資源類型」的所有資源 。 :

aws 資源組 list-group-resources -組名 tbq-WebServer -過濾器名稱 = 資源類型,值 =:: EC2:: 實例AWS

下列程式碼範例會示範如何使用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" } ] }

下列程式碼範例會示範如何使用put-group-configuration

AWS CLI

將服務組態附加至資源群組

範例 1:下列put-group-configuration範例指定資源群組僅包含C5M5系列中執行個體的 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" ] } ] } ]

如果成功,此命令不會產生輸出。

如需詳細資訊,請參閱《Resource Groups API 參考指南》中的資源群組的服務組態

下列程式碼範例會示範如何使用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 命令參考中的標籤

下列程式碼範例會示範如何使用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 命令參考中的取消標記

下列程式碼範例會示範如何使用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中的。