

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

# 使用 Cloud Control API 資源類型
<a name="resource-types"></a>

若要搭配 使用資源類型 AWS 雲端控制 API，該資源類型必須在您的 中存在並啟用 AWS 帳戶。支援 AWS 的資源類型為公有且一律啟用。您可以選擇也透過 AWS CloudFormation 延伸登錄來啟用第三方發佈者提供的公有資源類型。

*延伸登錄*檔是 的一項功能 AWS CloudFormation ，其中包含可在您帳戶中使用之資源類型的詳細資訊。這些可能包括第三方發佈的資源類型，以及 發佈的資源類型 AWS。您可以使用 登錄檔來管理帳戶中的資源類型，包括：
+ 檢視可用和已啟用的資源類型。
+ 註冊私有資源類型以用於您的帳戶。
+ 啟用公有第三方資源類型。
+ 管理資源類型*版本*，包括在帳戶中設定資源類型的預設版本。
+ 設定資源類型的帳戶層級組態屬性，如果有的話。

您也可以使用 CloudFormation 登錄檔來檢視資源類型的結構描述，其中包含有關如何搭配 Cloud Control API 使用資源的重要資訊，例如屬性定義和許可要求。如需詳細資訊，請參閱[檢視資源類型結構描述](#resource-types-schemas)。

除了 CloudFormation API 之外，還可以透過 CloudFormation 主控台取得登錄檔。

**注意**  
並非所有 CloudFormation 登錄檔中列出的資源類型目前都支援 Cloud Control API。如需詳細資訊，請參閱[判斷資源類型是否支援 Cloud Control API](#resource-types-determine-support)。

如需資源類型管理選項的詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[使用 CloudFormation 登錄](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html)檔。

## 使用 CloudFormation API 管理資源類型
<a name="resource-types-manage-APIs"></a>

除了透過 CloudFormation 主控台存取延伸登錄檔之外，您還可以使用 CloudFormation API 中包含的操作來識別和管理帳戶中的資源類型。下表列出可用於探索、啟用和設定帳戶中可用資源類型的 API 操作。


| CloudFormation API 操作 | AWS CLI 命令 | Description | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html)  | 傳回資源類型的詳細資訊。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html)  | 傳回資源類型的摘要資訊。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html)  | 啟用公有第三方資源類型，使其可用於您的帳戶。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeactivateType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeactivateType.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html)  | 停用您帳戶中的公有第三方資源類型。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypeVersions.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypeVersions.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-type-versions.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-type-versions.html)  | 傳回資源類型的版本摘要資訊。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeDefaultVersion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeDefaultVersion.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-default-version.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-default-version.html)  | 指定資源類型的預設版本。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_BatchDescribeTypeConfigurations.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_BatchDescribeTypeConfigurations.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/batch-describe-type-configurations.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/batch-describe-type-configurations.html)  | 傳回指定資源類型的組態資料。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html)  | 指定您帳戶中資源類型的組態資料。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html)  | 註冊私有第三方資源，使其可用於您的帳戶。 | 
|  [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html)  | 取消註冊私有第三方資源，將其從帳戶中的作用中使用中移除。 | 

## 判斷資源類型是否支援 Cloud Control API
<a name="resource-types-determine-support"></a>

根據預設，在 CloudFormation 登錄檔中發佈的資源類型會自動支援 Cloud Control API 資源操作。這包括私有資源類型，以及公有第三方資源類型。不過， AWS CloudFormation 登錄檔也包含舊版資源類型，分類為*不可佈建*。這些資源類型目前不支援 Cloud Control API，您無法在資源操作中使用它們。

如需目前支援 Cloud Control API 資源操作的 AWS 公有資源類型清單，請參閱 [支援雲端控制 API 的資源類型](supported-resources.md)。

您也可以使用 AWS Command Line Interface (AWS CLI) 產生支援的資源類型清單，或判斷特定資源類型是否支援 Cloud Control API。

**使用 產生支援的資源清單 AWS CLI**
+ 使用 `list-types`命令搭配下列參數：
  + `type` – 指定 `RESOURCE` 以僅選取資源類型。
  + `visibility` – 指定 `PUBLIC`以選取公有資源或`PRIVATE`私有資源。
  + `provisioning-type` – 指定 `FULLY_MUTABLE`或 `IMMUTABLE` 僅選取可佈建的資源類型。

  例如，下列命令會從 CloudFormation 登錄檔選取完全可變的前 100 個公有資源類型。

  ```
  $ aws cloudformation list-types \
      --type RESOURCE --visibility PUBLIC \
      --provisioning-type FULLY_MUTABLE --max-results 100
  ```

**使用 判斷特定資源類型是否支援 Cloud Control API AWS CLI**
+ 使用 `describe-type`命令來傳回 資源類型的詳細資訊。

  `ProvisioningType` `FULLY_MUTABLE` 或 的資源類型`IMMUTABLE`支援 Cloud Control API 資源操作。

  下列範例會傳回 `AWS::Logs::LogGroup` 資源類型的詳細資訊。

  ```
  $ aws cloudformation describe-type \
      --type RESOURCE --type-name AWS::Logs::LogGroup
  ```

## 檢視資源類型結構描述
<a name="resource-types-schemas"></a>

在資源建立和更新操作期間，您可以指定要設定的資源屬性及其值。資源的屬性定義在其*資源類型結構描述*中。這包括資料類型、是否需要 屬性、有效值和其他屬性限制條件。

您可以使用 CloudFormation 主控台或 檢視資源類型的結構描述 AWS CLI。此外， *AWS CloudFormation 使用者指南*包含每個發佈可用資源類型的 AWS 參考主題。如需資源類型屬性的詳細資訊，除了使用範例之外，請參閱[AWS 資源和屬性類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)區段中的對應主題。

**注意**  
並非所有 *AWS CloudFormation 使用者指南*中列出的資源類型都可以與 Cloud Control API 搭配使用。若要判斷資源類型是否可用，請參閱 [支援雲端控制 API 的資源類型](supported-resources.md)。

如需定義如何撰寫資源類型結構描述之資源類型定義結構描述的詳細資訊，請參閱 *CloudFormation CLI 延伸開發使用者指南*中的[資源類型定義結構描述](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)。

如需如何檢視現有資源目前狀態的資訊，其中包含其目前的屬性值，請參閱 [使用 讀取資源 AWS 雲端控制 API](resource-operations-read.md)。<a name="resource-operations-create-view-schema-console"></a>

## 使用 CloudFormation 主控台檢視資源類型結構描述
<a name="resource-operations-create-view-schema-console"></a>

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation 主控台。

1. 在 **CloudFormation** 導覽窗格的**登錄**檔下，選取**已啟用的延伸**項目。

1. 在**資源類型**索引標籤上，選取您要檢視資源結構描述的資源類型。

   CloudFormation 會顯示資源類型詳細資訊頁面。資源結構描述會顯示在**結構描述**索引標籤上。<a name="resource-operations-create-view-schema-cli"></a>

## 使用 檢視資源類型結構描述 AWS CLI
<a name="resource-operations-create-view-schema-cli"></a>
+ 執行 `[describe-type](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html)`。

  在傳回的輸出中，`Schema`結構包含資源類型結構描述。

  例如，下列命令會傳回 `AWS::Logs::LogGroup` 資源類型的相關資訊。

  ```
  $ aws cloudformation describe-type \
      --type RESOURCE --type-name AWS::Logs::LogGroup
  ```

### 檢視資源屬性屬性
<a name="resource-types-schemas-properties"></a>

資源類型屬性會在資源類型結構描述的 `properties`區段中定義。這包括 屬性資料類型、是否需要 屬性，以及任何限制，例如允許值或必要模式。

此外，在資源層級設定的特定屬性會控管何時或是否可以指定屬性。其中包含：
+ 在資源建立期間，`required`必須將定義為 的屬性指定為所需狀態。
+ 定義為 的屬性`createOnlyProperties`可由使用者設定，但僅限於資源建立期間。
+ 定義為 的屬性`readOnlyProperties`無法由使用者設定。
+ 定義為 的屬性`writeOnlyProperties`可在建立或更新資源時由使用者指定，但在讀取或清單請求期間無法傳回。

### 檢視支援的資源操作
<a name="resource-types-schemas-events"></a>

您可以參考資源類型結構描述的 `handlers`區段，來判斷資源類型支援的操作。如果資源類型支援 操作，則會列在 `handlers`區段中，其中包含列出處理常式所需許可的 `permissions`元素。

例如，以下是資源類型的`AWS::Logs::LogGroup`資源類型結構描述`handlers`區段。本節顯示此資源類型支援所有五個資源操作，並列出每個處理常式所需的許可。

```
  "handlers": {
    "create": {
      "permissions": [
        "logs:DescribeLogGroups",
        "logs:CreateLogGroup",
        "logs:PutRetentionPolicy"
      ]
    },
    "read": {
      "permissions": [
        "logs:DescribeLogGroups"
      ]
    },
    "update": {
      "permissions": [
        "logs:DescribeLogGroups",
        "logs:AssociateKmsKey",
        "logs:DisassociateKmsKey",
        "logs:PutRetentionPolicy",
        "logs:DeleteRetentionPolicy"
      ]
    },
    "delete": {
      "permissions": [
        "logs:DescribeLogGroups",
        "logs:DeleteLogGroup"
      ]
    },
    "list": {
      "permissions": [
        "logs:DescribeLogGroups"
      ]
    }
  }
```