本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Cloud Control API 資源類型
若要搭配 使用資源類型 AWS Cloud Control API,該資源類型必須在您的 中存在並啟用 AWS 帳戶。支援 AWS 的資源類型為公有且一律啟用。您可以選擇啟用第三方發佈者提供的公有資源類型,也可以透過 AWS CloudFormation 延伸登錄檔啟用。
延伸登錄檔是 的一項功能 AWS CloudFormation ,其中包含有關可在您的帳戶中使用的資源類型的詳細資訊。除了 發佈的資源類型之外,這些類型還包括第三方發佈的資源類型 AWS。使用登錄檔,您可以管理帳戶中的資源類型,包括:
-
檢視可用的和已啟用的資源類型。
-
註冊私有資源類型以用於您的帳戶。
-
啟用公有第三方資源類型。
-
管理資源類型版本 ,包括設定您帳戶中資源類型的預設版本。
-
設定資源類型的帳戶層級組態屬性,如果有的話。
您也可以使用 AWS CloudFormation 登錄檔檢視資源類型的結構描述,其中包含有關如何搭配 Cloud Control 使用資源的重要資訊API,例如屬性定義和許可要求。如需詳細資訊,請參閱檢視資源類型結構描述。
除了 之外 CloudFormation,還可以透過 CloudFormation 主控台使用登錄檔API。
注意
CloudFormation 登錄檔中列出的所有資源類型目前都支援 Cloud Control API。如需詳細資訊,請參閱判斷資源類型是否支援 Cloud Control API。
如需資源類型管理選項的詳細資訊,請參閱 AWS CloudFormation 使用者指南 中的使用 CloudFormation 登錄檔。
使用 管理資源類型 AWS CloudFormation API
除了透過 AWS CloudFormation 主控台存取延伸登錄檔之外,您還可以使用 中 AWS CloudFormation API包含的操作來識別和管理帳戶中的資源類型。下表列出可用來探索、啟用和設定帳戶中可用資源類型的API操作。
CloudFormation API 操作 | AWS CLI 命令 | 描述 |
---|---|---|
傳回資源類型的詳細資訊。 |
||
傳回資源類型的摘要資訊。 |
||
啟用公有第三方資源類型,使其可用於您的帳戶。 |
||
停用您帳戶中的公有第三方資源類型。 |
||
傳回資源類型的版本摘要資訊。 |
||
指定資源類型的預設版本。 |
||
傳回指定資源類型的組態資料。 |
||
指定帳戶中資源類型的組態資料。 |
||
註冊私有第三方資源,使其可用於您的帳戶。 |
||
取消註冊私有第三方資源,將其從帳戶中的作用中使用中移除。 |
判斷資源類型是否支援 Cloud Control API
根據預設,在 CloudFormation 登錄檔中發佈的資源類型會自動支援 Cloud Control API 資源操作。這包括私有資源類型,以及公有第三方資源類型。不過, AWS CloudFormation 登錄檔也包含舊版資源類型,分類為不可佈建的 。這些資源類型目前不支援 Cloud Control API,您無法在資源操作中使用它們。
如需目前支援 Cloud Control 資源操作的 AWS 公有API資源類型清單,請參閱 支援 Cloud Control 的資源類型 API。
您也可以使用 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
-
判斷特定資源類型是否支援API使用 的 Cloud Control 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
檢視資源類型結構描述
在資源建立和更新操作期間,您可以指定要設定的資源屬性及其值。資源的屬性會在其資源類型結構描述 中定義。這包括資料類型、是否需要 屬性、有效值和其他屬性限制。
您可以使用 CloudFormation 主控台或 檢視資源類型的結構描述 AWS CLI。此外,AWS CloudFormation 使用者指南包含每個發佈可用資源類型的 AWS 參考主題。如需資源類型屬性的詳細資訊,除了使用範例之外,請參閱AWS 資源和屬性類型參考區段中的對應主題。
注意
並非所有 AWS CloudFormation 使用者指南中列出的資源類型都可以與 Cloud Control 搭配使用API。若要判斷資源類型是否可用,請參閱 支援 Cloud Control 的資源類型 API。
如需定義如何撰寫資源類型結構描述之資源類型定義結構描述的詳細資訊,請參閱 CloudFormation CLI 延伸開發使用者指南 中的資源類型定義結構描述。
如需有關如何檢視現有資源目前狀態的資訊,其中包含其目前屬性值,請參閱 使用 讀取資源 AWS Cloud Control API。
使用 AWS CloudFormation 主控台檢視資源類型結構描述
登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
在CloudFormation導覽窗格中的登錄檔 下,選取已啟用的延伸模組 。
-
在資源類型索引標籤上,選取您要檢視資源結構描述的資源類型。
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
元素。
例如,以下是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" ] } }