

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

# 云控制 API 资源操作
<a name="resource-operations"></a>

使用 AWS 云端控制 API to do 或其他命令动词构造对中的资源进行创建、读取、更新、移除和列出 (-L) 操作。 AWS 账户

**Topics**
+ [先决条件](#resource-operations-prerequisites)
+ [指定凭证](#resource-operations-permissions)
+ [确保请求是唯一的](#resource-operations-idempotency)
+ [注意事项](#resource-operations-considerations)
+ [创建资源](resource-operations-create.md)
+ [更新资源](resource-operations-update.md)
+ [删除资源](resource-operations-delete.md)
+ [发现资源](resource-operations-list.md)
+ [读取资源](resource-operations-read.md)
+ [管理资源请求](resource-operations-manage-requests.md)
+ [用以下方法识别资源 AWS 云端控制 API](resource-identifier.md)

## 将资源与 Cloud Control API 结合使用的先决条件
<a name="resource-operations-prerequisites"></a>

要使用 Cloud Control API 预置特定资源，该资源类型必须支持 Cloud Control API，并且在 AWS 账户中可供使用。
+ **可供您使用的资源 AWS 账户**

  若要在账户中可供使用，必须激活公共资源类型并注册私有资源类型。支持的 AWS 资源类型为公共资源类型，并且始终处于激活状态。有关更多信息，请参阅 [使用云控制 API 资源类型](resource-types.md)。
+ **支持 Cloud Control API 的资源**

  有关支持 Cloud Control API 的 AWS 资源类型列表，请参阅[支持 Cloud Control API 的资源类型](supported-resources.md)。

  第三方资源类型（公共资源和私有资源）都支持 Cloud Control API。

  有关如何确定特定资源类型是否支持 Cloud Control API 的详细信息，请参阅[确定资源类型是否支持 Cloud Control API](resource-types.md#resource-types-determine-support)。

有关使用资源类型的信息，请参阅[使用云控制 API 资源类型](resource-types.md)。

## 指定 Cloud Control API 的凭证
<a name="resource-operations-permissions"></a>

作为代表您对 AWS 资源执行操作的一部分，Cloud Control API 必须调用实际配置这些资源的底层 AWS 服务。为此，Cloud Control API 需要必要的凭证才能访问这些服务。您可以通过两种方式使 Cloud Control API 能够获得这些凭证：
+ **用户凭证**

  默认情况下，Cloud Control API 使用您的 AWS 用户凭证创建临时会话，并使用该会话对下游 AWS 服务进行任何必要的调用。此会话最长持续 24 小时，在此之后，Cloud Control API 对 AWS 的任何剩余调用都将失败。
+ **服务角色凭证**

  您还可以指定您发出资源请求时 Cloud Control API 在资源操作期间承担的服务角色。除了其他优势外，指定服务角色还可以让 Cloud Control API 在长达 36 小时的时间内调用底层 AWS 服务。

  要使用服务角色，请指定资源操作请求的 `RoleArn` 参数。

  由于 Cloud Control API 操作是服务的一部分，因此您指定的服务角色由该 CloudFormation 服务（`cloudformation.amazonaws.com`）代替。 CloudFormation 有关更多信息，请参阅《AWS CloudFormation 用户指南》**中的 [CloudFormation 服务角色](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html)。

该资源类型的架构的 `handlers` 部分中定义了每个资源处理程序所需的权限。有关查看资源架构的更多信息，请参阅[查看资源类型架构](resource-types.md#resource-types-schemas)。`handlers` 部分在[资源类型定义架构](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers)中定义。

## 确保使用 Cloud Control API 时资源操作请求是唯一的
<a name="resource-operations-idempotency"></a>

作为最佳实践，我们强烈建议您使用创建、删除和更新资源操作请求指定幂等性令牌。最好指定一个对于每个请求都是唯一的令牌，例如通用唯一标识符 (UUID)。这样的令牌可确保在必须重试请求的情况下可以消除请求的歧义。

`create-resource`、`delete-resource` 和 `update-resource` 操作都带有一个可以设置为幂等性令牌的 `client-token` 参数。

## 使用 Cloud Control API 时的注意事项
<a name="resource-operations-considerations"></a>

我们建议您在使用 Cloud Control API 执行资源操作时考虑以下服务行为：
+ Cloud Control API 单独并独立于任何其他资源操作执行每个资源操作。
+ 向 Cloud Control API 发出的单个资源操作请求实际上可能包含多个对预置资源的底层服务的调用。因此，资源请求在仅部分完成时可能会失败，从而导致只将某些请求的更改应用于资源。
+ 无论资源操作何时失败，Cloud Control API 都不会将资源回滚到其之前的状态。
+ 使用 Cloud Control API 对给定资源执行资源操作时，您一次只能执行一项操作。但是，您仍然可以通过预置资源的底层服务直接操作资源。我们强烈建议不要使用这种方法，因为此方法可能会导致不可预测的行为。