

# 使用 AWS CLI 的 Cloud Control API 示例
<a name="cli_cloudcontrol_code_examples"></a>

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

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

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

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

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

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

以下代码示例演示了如何使用 `create-resource`。

**AWS CLI**  
**创建资源**  
以下 `create-resource` 示例创建一个名为 ResourceExample 的 AWS::Kinesis::Stream 资源，其留存期为 168 小时，分片计数为 3。  

```
aws cloudcontrol create-resource \
    --type-name AWS::Kinesis::Stream \
    --desired-state "{\"Name\": \"ResourceExample\",\"RetentionPeriodHours\":168, \"ShardCount\":3}"
```
输出：  

```
{
    "ProgressEvent": {
        "EventTime": 1632506656.706,
        "TypeName": "AWS::Kinesis::Stream",
        "OperationStatus": "IN_PROGRESS",
        "Operation": "CREATE",
        "Identifier": "ResourceExample",
        "RequestToken": "20999d87-e304-4725-ad84-832dcbfd7fc5"
    }
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[创建资源](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-create.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [CreateResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/create-resource.html)。

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

以下代码示例演示了如何使用 `delete-resource`。

**AWS CLI**  
**删除资源**  
以下 `delete-resource` 示例从您的 AWS 账户中删除标识为 ResourceExample 的 AWS::Kinesis::Stream 资源。  

```
aws cloudcontrol delete-resource \
    --type-name AWS::Kinesis::Stream \
    --identifier ResourceExample
```
输出：  

```
{
    "ProgressEvent": {
        "TypeName": "AWS::Kinesis::Stream",
        "Identifier": "ResourceExample",
        "RequestToken": "e48f26ff-d0f9-4ab8-a878-120db1edf111",
        "Operation": "DELETE",
        "OperationStatus": "IN_PROGRESS",
        "EventTime": 1632950300.14
    }
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[删除资源](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-delete.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [DeleteResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/delete-resource.html)。

### `get-resource-request-status`
<a name="cloudcontrol_GetResourceRequestStatus_cli_topic"></a>

以下代码示例演示了如何使用 `get-resource-request-status`。

**AWS CLI**  
**获取资源请求的状态信息**  
以下 `get-resource-request-status` 示例返回指定资源请求的状态信息。  

```
aws cloudcontrol get-resource-request-status \
    --request-token "e1a6b86e-46bd-41ac-bfba-001234567890"
```
输出：  

```
{
    "ProgressEvent": {
        "TypeName": "AWS::Kinesis::Stream",
        "Identifier": "Demo",
        "RequestToken": "e1a6b86e-46bd-41ac-bfba-001234567890",
        "Operation": "CREATE",
        "OperationStatus": "FAILED",
        "EventTime": 1632950268.481,
        "StatusMessage": "Resource of type 'AWS::Kinesis::Stream' with identifier 'Demo' already exists.",
        "ErrorCode": "AlreadyExists"
    }
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[管理资源操作请求](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetResourceRequestStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/get-resource-request-status.html)。

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

以下代码示例演示了如何使用 `get-resource`。

**AWS CLI**  
**获取资源的当前状态**  
以下 `get-resource` 示例返回名为 ResourceExample 的 AWS::Kinesis::Stream 资源的当前状态。  

```
aws cloudcontrol get-resource \
    --type-name AWS::Kinesis::Stream \
    --identifier ResourceExample
```
输出：  

```
{
    "TypeName": "AWS::Kinesis::Stream",
    "ResourceDescription": {
        "Identifier": "ResourceExample",
        "Properties": "{\"Arn\":\"arn:aws:kinesis:us-west-2:099908667365:stream/ResourceExample\",\"RetentionPeriodHours\":168,\"Name\":\"ResourceExample\",\"ShardCount\":3}"
    }
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[读取资源的当前状态](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-read.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [GetResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/get-resource.html)。

### `list-resource-requests`
<a name="cloudcontrol_ListResourceRequests_cli_topic"></a>

以下代码示例演示了如何使用 `list-resource-requests`。

**AWS CLI**  
**列出活动资源操作请求**  
以下 `list-resource-requests` 示例列出您 AWS 账户中已失败的“CREATE”和“UPDATE”操作的资源请求。  

```
aws cloudcontrol list-resource-requests \
    --resource-request-status-filter Operations=CREATE,OperationStatuses=FAILED
```
输出：  

```
{
    "ResourceRequestStatusSummaries": [
        {
            "TypeName": "AWS::Kinesis::Stream",
            "Identifier": "Demo",
            "RequestToken": "e1a6b86e-46bd-41ac-bfba-633abcdfdbd7",
            "Operation": "CREATE",
            "OperationStatus": "FAILED",
            "EventTime": 1632950268.481,
            "StatusMessage": "Resource of type 'AWS::Kinesis::Stream' with identifier 'Demo' already exists.",
            "ErrorCode": "AlreadyExists"
        }
    ]
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[管理资源操作请求](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListResourceRequests](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/list-resource-requests.html)。

### `list-resources`
<a name="cloudcontrol_ListResources_cli_topic"></a>

以下代码示例演示了如何使用 `list-resources`。

**AWS CLI**  
**列出给定类型的资源**  
以下 `list-resources` 示例列出在您 AWS 账户中预置的 AWS::Kinesis::Stream 资源。  

```
aws cloudcontrol list-resources \
    --type-name AWS::Kinesis::Stream
```
输出：  

```
{
    "TypeName": "AWS::Kinesis::Stream",
    "ResourceDescriptions": [
        {
            "Identifier": "MyKinesisStream",
            "Properties": "{\"Name\":\"MyKinesisStream\"}"
        },
        {
            "Identifier": "AnotherStream",
            "Properties": "{\"Name\":\"AnotherStream\"}"
        }
    ]
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[发现资源](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-list.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [ListResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/list-resources.html)。

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

以下代码示例演示了如何使用 `update-resource`。

**AWS CLI**  
**更新现有资源的属性**  
以下 `update-resource` 示例会将名为 ExampleLogGroup 的 AWS::Logs::LogGroup 资源的留存策略更新为 90 天。  

```
aws cloudcontrol update-resource \
    --type-name AWS::Logs::LogGroup \
    --identifier ExampleLogGroup \
    --patch-document "[{\"op\":\"replace\",\"path\":\"/RetentionInDays\",\"value\":90}]"
```
输出：  

```
{
    "ProgressEvent": {
        "EventTime": "2021-08-09T18:17:15.219Z",
        "TypeName": "AWS::Logs::LogGroup",
        "OperationStatus": "IN_PROGRESS",
        "Operation": "UPDATE",
        "Identifier": "ExampleLogGroup",
        "RequestToken": "5f40c577-3534-4b20-9599-0b0123456789"
    }
}
```
有关更多信息，请参阅《Cloud Control API 用户指南》**中的[更新资源](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-update.html)。  
+  有关 API 详细信息，请参阅《AWS CLI 命令参考》**中的 [UpdateResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/update-resource.html)。