使用資源類型 - 雲端控制 API

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

使用資源類型

若要搭配使用資源類型AWS Cloud Control API,該資源類型必須存在並在您的AWS 帳戶. 支援的AWS資源類型為公用且一律啟動。您也可以選擇啟用第三方發行者提供的公開資源類型。您可以通過AWS CloudFormation擴展註冊表執行此操作以及其他資源類型管理任務。

擴充功能登錄是一項功能AWS CloudFormation,其中包含有關可在您帳號中使用之資源類型的詳細資訊。這些資源類型可以包括由第三方發行的資源類型,以及由AWS. 您可以使用登錄檔管理帳戶中的資源類型,包括:

  • 檢視可用和已啟用資源類型。

  • 註冊 Private 資源類型,用於您的帳戶。

  • 啟用公用第三方資源類型。

  • 管理資源類型版本,包括在帳號中設定資源類型的預設版本。

  • 設定資源類型的帳戶層級組態特性 (如果有的話)。

您也可以使用AWS CloudFormation登錄來檢視資源類型的結構描述,其中包含如何搭配 Cloud Control API 使用資源的重要資訊,例如內容定義和權限需求。如需詳細資訊,請參閱檢視資源類型結構描述

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

注意

目前並非所有CloudFormation登錄中列出的資源類型都支援雲端控制 API。如需詳細資訊,請參閱判斷資源類型是否支援雲端控制 API

如需有關資源類型管理選項的詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation用CloudFormation登錄

使用AWS CloudFormation API 管理資源類型

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

CloudFormationAPI 操作 AWS CLI 命令 描述

DescribeType

說明類型

傳回資源類型的詳細資訊。

ListTypes

列表類型

傳回資源類型的摘要資訊。

ActivateType

激活型

啟用公用第三方資源類型,使其可用於您的帳戶。

DeactivateType

鈍化型

停用帳號中的公開第三方資源類型。

ListTypeVersions

list-type-versions

傳回資源類型版本的摘要資訊。

SetTypeDefaultVersion

set-type-default-version

指定資源類型的預設版本。

BatchDescribeTypeConfigurations

batch-describe-type-configurations

傳回指定資源類型的組態資料。

SetTypeConfiguration

set-type-configuration

指定帳號中資源類型的組態資料。

RegisterType

寄存器類型

註冊 Private 資源,使其可用於您的帳戶。

DeregisterType

取消註冊類型

取消註冊私人第三方資源,並將其從帳戶中的活躍使用中移除。

判斷資源類型是否支援雲端控制 API

根據預設,CloudFormation登錄中發佈的資源類型會自動支援 Cloud Control API 資源作業。除了公開第三方資源類型外,這還包括私有資源類型。不過,AWS CloudFormation登錄也包含舊式資源類型,分類為不可預備的資源類型。這些資源類型目前不支援 Cloud Control API,而且您無法在資源作業中使用它們。

如需目前支援 Cloud Control API 資源作業的AWS公開資源類型清單,請參閱支援雲端控制 API 的資源類型

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

使用產生支援的資源清單AWS CLI
  • 搭配下列參數使用list-types命令:

    • type— 指RESOURCE定僅選取資源類型。

    • visibility— 指定選PUBLIC取公用資源或專PRIVATE用資源。

    • provisioning-type— 指IMMUTABLEFULLY_MUTABLE或僅選取可預備的資源類型。

    例如,下列命令會選取從CloudFormation登錄完全變動的前 100 個公用資源類型。

    aws cloudformation list-types --type RESOURCE --visibility PUBLIC --provisioning-type FULLY_MUTABLE --max-results 100
判斷特定資源類型是否支援雲端控制 APIAWS CLI
  • 使用命describe-type令返回資源類型的詳細信息。

    具有FULLY_MUTABLEIMMUTABLE支援雲端控制 API 資源作業ProvisioningType的資源類型。

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

    aws cloudformation describe-type --type RESOURCE --type-name AWS::Logs::LogGroup

檢視資源類型綱要

在資源建立和更新作業期間,您可以指定要設定的資源屬性及其值。資源的屬性在其資源類型結構描述中定義。這包括資料類型、是否需要性質、有效值以及其他性質約束。

您可以使用主控CloudFormation台或AWS CLI. 此外,《AWS CloudFormation使用者指南》還包含AWS發佈的每個可用資源類型的參考主題。如需有關資源類型屬性的詳細資訊,除了使用範例之外,請參閱AWS資源和屬性類型參考一節中的對應主題。

注意

並非使用指南中列出的AWS CloudFormation所有資源類型都可與雲端控制 API 搭配使用。若要判斷資源類型是否可用,請參閱支援 Cloud Control API 的資源類型。

有關定義如何編寫資源類型結構描述的資源類型定義結構描述的詳細資訊,請參閱 CloudFormationCLI 擴充功能開發使用者指南中的資源類型定義結構描述

有關如何查看現有資源的當前狀態(包括其當前屬性值)的詳細信息,請參閱閱讀資源

使用AWS CloudFormation主控台檢視資源類型結構描述

  1. 請登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/cloudformation 的 AWS CloudFormation 主控台。

  2. 在功能CloudFormation窗格的 [登錄] 下,選取 [啟用的擴充功能]。

  3. 資源類型索引標籤上,選取您想要檢視資源結構描述的資源類型。

    CloudFormation顯示資源類型詳細資訊頁面。資源模式會顯示在 [結構描述] 索引標籤上。

使用檢視資源類型綱要AWS CLI

  • 執行 describe-type

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

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

    aws cloudformation describe-type --type RESOURCE --type-name AWS::Logs::LogGroup

檢視資源屬性屬性

資源類型屬性定義在資源類型結構描述的properties區段中。這包括性質資料類型、是否需要性質以及任何約束 (例如允許的值或所需樣式)。

此外,在資源層級設定的某些屬性會控制何時或是否可以指定屬性。其中包括:

  • 定義為的屬性required必須在資源建立期間以所需的狀態指定。

  • 定義為的屬性createOnlyProperties可由使用者設定,但只能在資源建立期間設定。

  • 定義為readOnlyProperties無法由使用者設定的屬性。

  • 定義為的屬性writeOnlyProperties可由使用者在建立或更新資源時指定,但無法在讀取或清單要求期間傳回。

檢視支援的資源作業

您可以參考資源類型結構描述的一handlers節來判斷資源類型支援的作業。如果資源類型支援某項作業,則會列在handlers區段中,而且包含列出處理常式所需權限的permissions元素。

例如,下面是資源類型的資源類型結構描述的handlersAWS::Logs::LogGroup部分。本節顯示此資源類型支援全部五種資源作業,並列出每個處理常式所需的權限。

"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" ] } }