AWS CloudFormation 挂钩概念 - AWS CloudFormation

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

AWS CloudFormation 挂钩概念

以下术语和概念对你理解和使用 AWS CloudFormation Hooks 至关重要。

Hook

Hook 包含在 CloudFormation 创建、更新或删除堆栈或特定资源之前立即调用的代码。它也可以在创建更改集操作期间调用。Hooks 可以检查即将置备的 CloudFormation 模板、资源或变更集。此外,可以在 Cloud Control API 创建、更新或删除特定资源之前立即调用 Hook。

如果 Hook 发现任何不符合 Hook 逻辑中定义的组织准则的配置,则您可以选择向WARN用户或FAIL CloudFormation 阻止配置资源。

挂钩具有以下特征:

  • 主动验证 — 通过在创建、更新或删除不合规资源之前识别出这些资源,从而降低风险、运营开销和成本。

  • 自动强制执行 — 在您的中提供强制执行 AWS 账户 ,以防止由配置不合规的资源。 CloudFormation

故障模式

你的 Hook 逻辑可以返回成功或失败。成功响应将允许操作继续。不合规的资源出现故障可能会导致以下结果:

  • FAIL— 停止配置操作。

  • WARN— 允许继续配置并显示警告消息。

WARN模式下创建 Hook 是在不影响堆栈操作的情况下监控 Hook 行为的有效方法。首先,在WARN模式下激活 Hook 以了解哪些操作会受到影响。评估了潜在影响后,您可以将挂钩切换到FAIL模式以开始防止不合规的操作。

钩住目标

挂钩目标指定挂钩将评估的操作。这些操作可以是:

  • CloudFormation (RESOURCE) 支持的资源

  • 堆栈模板 (STACK)

  • 零钱套装 (CHANGE_SET)

  • 云控制 API 支持的资源 (CLOUD_CONTROL)

您可以定义一个或多个目标,这些目标指定 Hook 将评估的最广泛的操作。例如,您可以创作一个 Hook 定位RESOURCE以定位所有 AWS 资源并STACK定位所有堆栈模板。

目标动作

目标操作定义了将调用 Hook 的特定操作(CREATEUPDATE、或DELETE)。对于RESOURCESTACK、和CLOUD_CONTROL目标,所有目标操作都适用。对于CHANGE_SET目标,只有CREATE操作才适用。

钩子处理器

对于自定义 Hook,这是处理评估的代码。它与目标调用点和目标操作相关联,后者标记 Hook 运行的确切点。你编写处理程序来托管这些特定点的逻辑。例如,带有PRE目标操作的目标调用CREATE点会生成一个 preCreate Hook 处理程序。当匹配的目标调用点和服务正在执行关联的目标操作时,Hook 处理程序中的代码就会运行。

有效值:(preCreate| preUpdate |preDelete)

重要

导致状态为的堆栈操作UpdateCleanup不会调用 Hook。例如,在以下两个场景中,不会调用 Hook 的preDelete处理程序:

  • 从模板中移除一个资源后,堆栈即会更新。

  • 更新类型为替换的资源被删除。

超时和重试限制

Hook 每次调用的超时限制为 30 秒,并且重试次数限制为 3 次。如果调用超过超时时间,我们将返回一条错误消息,指出 Hook 执行已超时。第三次重试后,将 Hook 执行 CloudFormation 标记为失败。