处理 CDK 自定义资源及其失败

处理 CDK 自定义资源及其失败

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

AwsCustomResource 允许在 CloudFormation 部署期间执行 AWS SDK 调用。通过单例 Lambda 函数处理 SDK 调用,确保在创建、更新和删除事件中执行。若 Lambda 函数失败,部署仍可成功。为确保部署失败,可使用自定义提供程序,AWS 推荐使用提供程序框架以简化响应处理。

🎯

关键要点

  • AwsCustomResource 允许在 CloudFormation 部署期间执行 AWS SDK 调用。
  • 通过单例 Lambda 函数处理 SDK 调用,确保在创建、更新和删除事件中执行。
  • 如果 Lambda 函数失败,CloudFormation 部署仍然可以成功。
  • 要确保部署失败,可以使用自定义提供程序,AWS 推荐使用提供程序框架以简化响应处理。
  • 使用 AwsCustomResource 可以在 CloudFormation Stack 的每次更新事件中执行 Lambda 函数。
  • 单例 Lambda 函数负责 AWS SDK 调用,状态(成功或失败)仅与 API 调用的成功与否相关。
  • 如果希望部署失败,可以使用自定义提供程序而不是默认的单例 Lambda 函数。
  • 提供程序框架会自动处理响应发送到 S3 存储桶的过程。
  • 使用 Lambda 直接时,需要手动执行 PUT 请求。
  • 在更新 CloudFormation 堆栈时,默认情况下 CustomResource 不会执行,除非属性发生变化。
  • 提供程序将在每个生命周期事件中执行,需要在 Lambda 代码中处理相关事件。

延伸问答

AwsCustomResource 是什么?

AwsCustomResource 允许在 CloudFormation 部署期间执行 AWS SDK 调用。

如何处理 Lambda 函数失败的情况?

如果 Lambda 函数失败,CloudFormation 部署仍然可以成功,除非使用自定义提供程序来确保部署失败。

使用自定义提供程序有什么好处?

使用自定义提供程序可以确保在 Lambda 函数失败时,CloudFormation 部署会失败,而不是默认的成功状态。

如何在 CloudFormation 更新事件中执行 Lambda 函数?

可以通过设置时间戳属性来确保在 CloudFormation 更新事件中执行 Lambda 函数。

提供程序框架与直接使用 Lambda 有什么区别?

提供程序框架会自动处理响应发送到 S3 存储桶,而直接使用 Lambda 需要手动执行 PUT 请求。

在 CloudFormation 堆栈更新时,CustomResource 默认情况下会执行吗?

默认情况下,CustomResource 不会在更新 CloudFormation 堆栈时执行,除非属性发生变化。

➡️

继续阅读