使用云控制API资源类型 - 云控制 API

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

使用云控制API资源类型

要将资源类型与一起使用 AWS Cloud Control API,则该资源类型必须存在并已激活 AWS 账户。支持的 AWS 资源类型为公共资源类型,且始终处于激活状态。您可以选择激活第三方出版商提供的公共资源类型,也可以通过 AWS CloudFormation 扩展注册表激活。

扩展注册表是一项功能 AWS CloudFormation ,其中包含有关您的账户中可用资源类型的详细信息。这些类型可能包括第三方发布的资源类型,以及 AWS发布的资源类型。您可以使用注册表管理账户中的资源类型,包括:

  • 查看可用且激活的资源类型。

  • 注册私有资源类型以在账户中使用。

  • 激活公共第三方资源类型。

  • 管理资源类型版本,包括在账户中设置资源类型的默认版本。

  • 设置资源类型的账户级别配置属性(如果有)。

您还可以使用 AWS CloudFormation 注册表查看资源类型的架构,其中包含有关如何在 Cloud Control 中使用该资源的重要信息API,例如属性定义和权限要求。有关更多信息,请参阅 查看资源类型架构

除了,还可通过 CloudFormation 控制台访问注册表 CloudFormationAPI。

注意

目前并非 CloudFormation 注册表中列出的所有资源类型都支持 Cloud Control API。有关更多信息,请参阅 确定资源类型是否支持云控制 API

有关资源类型管理选项的更多信息,请参阅AWS CloudFormation 用户指南》中的使用 CloudFormation 注册表

使用管理资源类型 AWS CloudFormation API

除了通过 AWS CloudFormation 控制台访问扩展注册表外,您还可以使用中包含的操作 AWS CloudFormation API来识别和管理您账户中的资源类型。下表列出了可用于发现、激活和配置账户中可用资源类型的API操作。

CloudFormation API操作 AWS CLI 命令 描述

DescribeType

describe-type

返回有关资源类型的详细信息。

ListTypes

list-types

返回有关资源类型的摘要信息。

ActivateType

activate-type

激活公共第三方资源类型,使其在账户可用。

DeactivateType

deactivate-type

在账户中停用公共第三方资源类型。

ListTypeVersions

list-type-versions

返回有关资源类型版本的摘要信息。

SetTypeDefaultVersion

set-type-default-version

指定资源类型的默认版本。

BatchDescribeTypeConfigurations

batch-describe-type-configurations

返回指定资源类型的配置数据。

SetTypeConfiguration

set-type-configuration

指定账户中资源类型的配置数据。

RegisterType

register-type

激活私有第三方资源,使其在账户可用。

DeregisterType

deregister-type

注销私有第三方资源,使其在账户中无法使用。

确定资源类型是否支持云控制 API

默认情况下,在 CloudFormation 注册表中发布的资源类型会自动支持 Cloud Control API 资源操作。除公共第三方资源类型外,这还包括私有资源类型。但是, AWS CloudFormation 注册表还包含归类为不可配置的旧资源类型。这些资源类型目前不支持 Cloud ControlAPI,您也无法在资源操作中使用它们。

有关当前支持 Cloud Control 资源操作的 AWS 公共API资源类型的列表,请参阅支持云控制的资源类型 API

您还可以使用 AWS Command Line Interface (AWS CLI) 生成支持的资源类型列表或确定特定资源类型是否支持 Cloud Control API。

使用生成支持的资源列表 AWS CLI
  • 结合下列参数使用 list-types 命令:

    • type:指定 RESOURCE 可仅选择资源类型。

    • visibility:指定 PUBLIC 可选择公共资源,或者指定 PRIVATE 可选择私有资源。

    • provisioning-type:指定 FULLY_MUTABLEIMMUTABLE 可仅选择那些可预置的资源类型。

    例如,以下命令从 CloudFormation 注册表中选择前 100 个完全可变的公共资源类型。

    $ aws cloudformation list-types \ --type RESOURCE --visibility PUBLIC \ --provisioning-type FULLY_MUTABLE --max-results 100
API使用以下方法确定特定资源类型是否支持云控制 AWS CLI
  • 使用 describe-type 命令可返回资源类型的详细信息。

    具有任一ProvisioningTypeFULLY_MUTABLEIMMUTABLE支持云控制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。要确定资源类型是否可用,请参阅支持云控制的资源类型 API

有关资源类型定义架构(定义如何创作资源类型架构)的详细信息,请参阅《扩展开发CloudFormation CLI用户指南》中的资源类型定义架构

有关如何查看现有资源的当前状态(包括其当前属性值)的信息,请参见使用阅读资源 AWS Cloud Control API

使用 AWS CloudFormation 控制台查看资源类型架构

  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/cloudformat ion 上打开 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 元素。

例如,以下是 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" ] } }