

# 使用 AWS CLI 的资源组示例
<a name="cli_resource-groups_code_examples"></a>

以下代码示例演示如何通过将 AWS Command Line Interface与资源组结合使用，来执行操作和实现常见场景。

*操作是大型程序的代码摘录*，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

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

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

### `create-group`
<a name="resource-groups_CreateGroup_cli_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` 示例创建了一个名为 `sampleCFNstackgroup` 的基于 AWS CloudFormation 堆栈的资源组。该查询包括 AWS Resource Groups 支持的指定 CloudFormation 堆栈中的所有资源。  

```
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 用户指南》**中的[创建组](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_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 用户指南》**中的[删除组](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_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_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_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_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：以下示例列出了组中“resource-type”也为“AWS::EC2::Instance”的所有资源。  
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_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_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_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" ]
            }
        ]
    }
]
```
如果成功，此命令不会产生任何输出。  
有关更多信息，请参阅《资源组 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_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_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 资源组用户指南》**中的[管理标签](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_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 资源组用户指南》**中的[管理标签](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_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 资源组用户指南》**中的[更新组](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 资源组用户指南》**中的[更新组](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_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 资源组用户指南》**中的[更新组](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)。