选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在您的账户中激活 Lambda 挂钩

聚焦模式
在您的账户中激活 Lambda 挂钩 - AWS CloudFormation

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

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

以下主题向您展示了如何在您的账户中激活 Lambda Hook,从而使其在激活该挂钩的账户和区域中可用。

激活 Lambda 挂钩(控制台)

激活 Lambda 挂钩以在您的账户中使用
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/cloudformat ion 上打开 AWS CloudFormation 控制台。

  2. 在屏幕顶部的导航栏上,选择要创建 Hook in AWS 区域 的位置。

  3. 如果您尚未为挂钩创建 Lambda 函数,请执行以下操作:

    如果您已经创建了 Lambda 函数,请继续执行下一步。

  4. 在左侧的导航窗格中,选择 Hook

  5. Hook 名称中,选择以下选项之一:

    • 提供一个简短的描述性名称,该名称将在之后Private::Lambda::添加。例如,如果输入MyTestHook,则完整的 Hook 名称变为Private::Lambda::MyTestHook

    • 使用以下格式提供完整的 Hook 名称(也称为别名):Provider::ServiceName::HookName

  6. 对于 Lambda 函数,请提供用于此挂钩的 Lambda 函数。您可以使用:

    • 不带后缀的完整亚马逊资源名称 (ARN)。

    • 带有版本或别名后缀的合格 ARN。

  7. 对于 Hook 目标,请选择要评估的内容:

    • 堆栈-在用户创建、更新或删除堆栈时评估堆栈模板。

    • 资源-在用户更新堆栈时评估各个资源的变化。

    • 更改集-在用户创建更改集时评估计划的更新。

    • 云控制 API — 评估由云控制 AP I 启动的创建、更新或删除操作。

  8. 在 “操作” 中,选择哪些操作(创建、更新、删除)将调用您的 Hook。

  9. 对于挂钩模式,选择挂钩调用的 Lambda 函数返回响应时挂钩的响应方式:FAILED

    • 警告-向用户发出警告,但允许继续执行操作。这对于非关键验证或信息检查很有用。

    • 失败-阻止操作继续进行。这有助于执行严格的合规或安全政策。

  10. 对于执行角色,请选择挂钩担任的用于调用您的 Lambda 函数的 IAM 角色。您可以 CloudFormation 允许自动为您创建执行角色,也可以指定已创建的角色。

  11. 选择下一步

  12. (可选)对于 Hook 过滤器,请执行以下操作:

    1. 资源筛选器中,指定哪些资源类型可以调用 Hook。这样可以确保仅针对相关资源调用 Hook。

    2. 筛选条件中,选择应用堆栈名称和堆栈角色筛选器的逻辑:

      • 所有堆栈名称和堆栈角色 — 只有当所有指定的过滤器都匹配时,才会调用 Hook。

      • 任何堆栈名称和堆栈角色 — 如果指定的过滤器中至少有一个匹配,则将调用 Hook。

      注意

      对于 Cloud Control API 操作,所有堆栈名称堆栈角色筛选器都将被忽略。

    3. 对于堆栈名称,在 Hook 调用中包含或排除特定堆栈。

      • 对于 “包含”,指定要包含的堆栈名称。当你想要瞄准一小部分特定的堆栈时,请使用此选项。只有此列表中指定的堆栈才会调用 Hook。

      • 对于排除,请指定要排除的堆栈名称。当你想在大多数堆栈上调用 Hook 但排除一些特定的堆栈时,请使用此选项。除此处列出的堆栈外,所有堆栈都将调用 Hook。

    4. 对于堆栈角色,请根据其关联的 IAM 角色在 Hook 调用中包含或排除特定堆栈。

      • 对于 Inc lude,指定一个或多个 IAM 角色 ARNs 来定位与这些角色关联的堆栈。只有由这些角色启动的堆栈操作才会调用 Hook。

      • 对于排除, ARNs 为要排除的堆栈指定一个或多个 IAM 角色。Hook 将在除指定角色启动的堆栈之外的所有堆栈上调用。

  13. 选择下一步

  14. 在 “查看并激活” 页面上,查看您的选择。要进行更改,请在相关部分选择编辑

  15. 准备好继续操作时,选择 “激活挂钩”。

激活 Lambda 挂钩 ()AWS CLI

在继续操作之前,请确认您已创建 Lambda 函数和将用于此 Hook 的执行角色。有关更多信息,请参阅创建 Lambda 函数来评估 Lambda 挂钩的资源为 Lambda 挂钩创建执行角色

激活 Lambda 挂钩以在您的账户中使用 ()AWS CLI
  1. 要开始激活 Hook,请使用以下命令 activate-type命令,用您的特定值替换占位符。此命令授权 Hook 使用您的 AWS 账户指定执行角色。

    aws cloudformation activate-type --type HOOK \ --type-name AWS::Hooks::LambdaHook \ --publisher-id aws-hooks \ --execution-role-arn arn:aws:iam::123456789012:role/my-execution-role \ --type-name-alias Private::Lambda::MyTestHook \ --region us-west-2
  2. 要完成激活 Hook,必须使用 JSON 配置文件对其进行配置。

    使用cat命令创建具有以下结构的 JSON 文件。有关更多信息,请参阅 挂钩配置架构语法参考

    $ cat > config.json { "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "CLOUD_CONTROL" ], "FailureMode": "WARN", "Properties": { "LambdaFunction": "arn:aws:lambda:us-west-2:123456789012:function:MyFunction" }, "TargetFilters": { "Actions": [ "CREATE", "UPDATE", "DELETE" ] } } } }
    • HookInvocationStatus:设置ENABLED为可启用挂钩。

    • TargetOperations:指定 Hook 将要评估的操作。

    • FailureMode:设置为 FAILWARN

    • LambdaFunction:指定 Lambda 函数的 ARN。

    • TargetFilters:指定将调用 Hook 的操作类型。

  3. 使用以下内容 set-type-configuration命令以及您创建的 JSON 文件一起应用配置。用您的特定值替换占位符。

    aws cloudformation set-type-configuration \ --configuration file://config.json \ --type-arn "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyTestHook" \ --region us-west-2

我们提供了模板示例,您可以使用这些示例来了解如何在 CloudFormation 堆栈模板中声明 Lambda Hook。有关更多信息,请参阅 。AWS::CloudFormation::LambdaHook(在 AWS CloudFormation 用户指南中)。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。