

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

# 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 CloudWatch Events 在建立資源時`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 的字串，該 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>

如需搭配 資源使用 Cloud Control API 的詳細資訊和範例，請參閱 [Cloud Control API 資源操作](resource-operations.md)。