

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 Cloud Control API
<a name="getting-started"></a>

使用此简短教程开始使用执行资源操作 AWS 云端控制 API。您将学习关于使用 Cloud Control API 创建、读取、更新、删除和列出资源的基础知识。

**Topics**
+ [步骤 1：创建资源](#getting-started-step1)
+ [步骤 2：读取（描述）资源](#getting-started-step2)
+ [步骤 3：更新资源](#getting-started-step3)
+ [步骤 4：列出特定类型的所有资源](#getting-started-list)
+ [第 5 步：删除资源](#getting-started-cleanup)
+ [后续步骤](#getting-started-next-steps)

## 步骤 1：创建资源
<a name="getting-started-step1"></a>

在本教程中，请创建 `[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)` 类型的资源。将该日志组命名为 **CloudControlExample**，并将其保留策略设置为 90 天。

1. 在 AWS Command Line Interface (AWS CLI) 中，使用以下参数运行`create-resource`命令：
   + 将 `type-name` 指定为 `AWS::Logs::LogGroup`。
   + 将 `desired-state` 指定为一个字符串，其中包含设置所需属性的 JSON：

     `{"LogGroupName": "CloudControlExample", "RetentionInDays": 90}`

   ```
   $ aws cloudcontrol create-resource --type-name AWS::Logs::LogGroup \
       --desired-state '{"LogGroupName": "CloudControlExample","RetentionInDays":90}'
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:07:23.347Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "CREATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "758f4a4e-fef4-491a-9b07-123456789012"
       }
   }
   ```

1. 要跟踪资源操作请求的状态，请运行带以下参数的 `get-resource-request-status` 命令：
   + 将 `request-token` 参数指定为 `ProgressEvent` 对象中返回的 `RequestToken` 属性值。

   ```
   $ aws cloudcontrol get-resource-request-status --request-token 758f4a4e-fef4-491a-9b07-123456789012
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。当 Cloud Control API 成功创建资源后，它会将 `OperationStatus` 值设置为 `SUCCESS`。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:23.326Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "CREATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "758f4a4e-fef4-491a-9b07-123456789012"
       }
   }
   ```

## 步骤 2：读取（描述）资源
<a name="getting-started-step2"></a>

接下来，读取您刚创建的资源的当前状态。
+ 在中 AWS CLI，使用以下参数运行`get-resource`命令：
  + 将 `identifier` 指定为创建资源时 `ProgressEvent` 对象中返回的 `identifier` 属性值。在本例中，它是 `CloudControlExample`，即您为日志组指定的名称。

  ```
  $ aws cloudcontrol get-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample
  ```

  Cloud Control API 返回有关资源当前状态的详细信息，包括其属性和设置的模型。在本例中，这包括资源创建时由 Amazon Ev CloudWatch ents 生成的属性。`Arn`

  ```
  {
      "TypeName": "AWS::Logs::LogGroup", 
      "ResourceDescription": {
          "Identifier": "CloudControlExample", 
          "ResourceModel": '{"RetentionInDays": 90, "LogGroupName": "CloudControlExample", "Arn": "arn:aws:logs:us-west-2:123456789012:log-group:CloudControlExample:*"}'
      }
  }
  ```

## 步骤 3：更新资源
<a name="getting-started-step3"></a>

接下来，更新日志组，将保留策略天数翻一番，使其达到 180 天。

1. 在中 AWS CLI，使用以下参数运行`update-resource`命令：
   + 将 `type-name` 指定为 `AWS::Logs::LogGroup`。
   + 将 `identifier` 指定为创建资源时 `ProgressEvent` 对象中返回的 `identifier` 属性值。在本例中，它是 `CloudControlExample`，即您为日志组指定的名称。
   + 将 `patch-document` 参数指定为字符串，其中包含的 JSON 表示将保留策略更新为 180 天的替换操作。

     `[{"op": "replace", "path": "RetentionInDays", "value": 180}]`

     有关撰写补丁文档的详细信息，请参阅[编写补丁文档](resource-operations-update.md#resource-operations-update-patch)。

   ```
   $ aws cloudcontrol update-resource --type-name AWS::Logs::LogGroup \
       --identifier CloudControlExample \
       --patch-document '[{"op": "replace", "path": "RetentionInDays", "value":180}]'
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:22.547Z", 
           "ResourceModel": '{"RetentionInDays":180,"LogGroupName":"CloudControlExample"}',
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "UPDATE",
           "Identifier": "CloudControlExample", 
           "RequestToken": "2026055d-f21c-4b50-bd40-123456789012"
       }
   }
   ```

1. 要跟踪资源操作请求的状态，请运行带以下参数的 `get-resource-request-status` 命令：
   + 将 `request-token` 参数指定为 `ProgressEvent` 对象中返回的 `RequestToken` 属性值。

   ```
   $ aws cloudcontrol get-resource-request-status --request-token 2026055d-f21c-4b50-bd40-123456789012
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。当 Cloud Control API 成功更新资源后，它会将 `OperationStatus` 值设置为 `SUCCESS`。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:23.326Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "UPDATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "2026055d-f21c-4b50-bd40-123456789012"
       }
   }
   ```

## 步骤 4：列出特定类型的所有资源
<a name="getting-started-list"></a>

接下来，使用 Cloud Control API 发现 AWS 账户中的资源。
+ 在中 AWS CLI，使用以下参数运行`list-resources`命令：
  + 将 `type-name` 指定为 `AWS::Logs::LogGroup`。

  ```
  $ aws cloudcontrol list-resources --type-name AWS::Logs::LogGroup
  ```

  Cloud Control API 会按主标识符返回账户中 `AWS::Logs::LogGroup` 资源的列表。这包括 `CloudControlExample`、您在本教程中创建的资源，以及账户中已存在的任何其他日志组。此外，对于 `AWS::Logs::LogGroup` 资源，`list-resources` 返回的信息包括每个资源的属性。

  ```
  {
      "TypeName": "AWS::Logs::LogGroup",
      "ResourceDescriptions": [
          {
              "Identifier": "CloudControlExample",
              "Properties": '{"RetentionInDays":180, "LogGroupName": "CloudControlExample", "Arn":"arn:aws:logs:us-west-2:123456789012:log-group:CloudControlExample:*"}'
          },
          {
              "Identifier": "AnotherLogGroupResourceExample",
              "Properties": '{"RetentionInDays": 90, "LogGroupName": "AnotherLogGroupResourceExample", "Arn": "arn:aws:logs:us-west-2:123456789012:log-group:AnotherLogGroupResourceExample:*"}'
          },
      ]
  }
  ```

## 第 5 步：删除资源
<a name="getting-started-cleanup"></a>

最后，从本教程中删除要清理的日志组。

1. 在中 AWS CLI，使用以下参数运行`delete-resource`命令：
   + 将 `type-name` 指定为 `AWS::Logs::LogGroup`。
   + 将 `identifier` 指定为创建资源时 `ProgressEvent` 对象中返回的 `identifier` 属性值。在本例中，它是 **`CloudControlExample`**，即您为日志组指定的名称。

   ```
   $ aws cloudcontrol delete-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:50:20.037Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "DELETE",
           "Identifier": "CloudControlExample",
           "RequestToken": "bb0ed9cd-84f9-44c2-b638-123456789012"
       }
   }
   ```

1. 要跟踪资源操作请求的状态，请运行带以下参数的 `get-resource-request-status` 命令：
   + 将 `request-token` 参数指定为 `ProgressEvent` 对象中返回的 `RequestToken` 属性值。

   ```
   $ aws cloudcontrol get-resource-request-status --request-token bb0ed9cd-84f9-44c2-b638-123456789012
   ```

   Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 `ProgressEvent` 对象。当 Cloud Control API 成功删除资源后，它会将 `OperationStatus` 值设置为 `SUCCESS`。

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:50:20.831Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "DELETE",
           "Identifier": "CloudControlExample",
           "RequestToken": "bb0ed9cd-84f9-44c2-b638-123456789012"
       }
   }
   ```

## 后续步骤
<a name="getting-started-next-steps"></a>

有关在资源中使用云控制 API 的详细信息和示例，请参阅[云控制 API 资源操作](resource-operations.md)。