

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# 使用 的資源群組範例 AWS CLI
<a name="cli_2_resource-groups_code_examples"></a>

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 資源群組來執行動作和實作常見案例。

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

每個範例均包含完整原始碼的連結，您可在連結中找到如何設定和執行內容中程式碼的相關指示。

**Topics**
+ [動作](#actions)

## 動作
<a name="actions"></a>

### `create-group`
<a name="resource-groups_CreateGroup_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 資源。  

```
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 使用者指南》**中的[建立群組](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [CreateGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/create-group.html)。

### `delete-group`
<a name="resource-groups_DeleteGroup_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 使用者指南》**中的[刪除群組](https://docs.aws.amazon.com/ARG/latest/userguide/deleting-resource-groups.html)。  
+  如需 API 詳細資訊，請參閱**《AWS CLI 命令參考》中的 [DeleteGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/delete-group.html)。

### `get-group-query`
<a name="resource-groups_GetGroupQuery_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-group-query.html)。

### `get-group`
<a name="resource-groups_GetGroup_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-group.html)。

### `get-tags`
<a name="resource-groups_GetTags_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-tags.html)。

### `list-group-resources`
<a name="resource-groups_ListGroupResources_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-group-resources.html)。

### `list-groups`
<a name="resource-groups_ListGroups_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-groups.html)。

### `list-resource-groups`
<a name="resource-groups_ListResourceGroups_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-resource-groups.html)。

### `put-group-configuration`
<a name="resource-groups_PutGroupConfiguration_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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" ]
            }
        ]
    }
]
```
此命令如果成功就不會產生輸出。  
如需詳細資訊，請參閱《Resource Groups API 參考指南》**中的[資源群組的服務組態](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [PutGroupConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/put-group-configuration.html)。

### `search-resources`
<a name="resource-groups_SearchResources_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/search-resources.html)。

### `tag`
<a name="resource-groups_Tag_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 使用者指南》**中的[管理標籤](https://docs.aws.amazon.com/ARG/latest/userguide/tagging-resources.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Tag](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/tag.html)。

### `untag`
<a name="resource-groups_Untag_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 使用者指南》**中的[管理標籤](https://docs.aws.amazon.com/ARG/latest/userguide/tagging-resources.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Untag](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/untag.html)。

### `update-group-query`
<a name="resource-groups_UpdateGroupQuery_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 使用者指南》**中的[更新群組](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html)。  
**範例 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 使用者指南》**中的[更新群組](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html)。  
+  如需 API 詳細資訊，請參閱《AWS CLI 命令參考》**中的 [UpdateGroupQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/update-group-query.html)。

### `update-group`
<a name="resource-groups_UpdateGroup_cli_2_topic"></a>

以下程式碼範例顯示如何使用 `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 使用者指南》**中的[更新群組](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html)。  
+  如需 API 詳細資訊，請參閱《*AWS CLI 命令參考*》中的 [UpdateGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/update-group.html)。