如何根据 CodePipeline 构建更新 CloudFront 分发 Lambda@Edge 参考?

问题描述

我的情况是:

  1. 我有一个由 CloudFormation 管理的 CloudFront 分配,除其他外,它需要将某些请求传递给 Edge Lambda。

  2. 我有一个 CodePipeline,它根据存储库提交构建我的 Lambda 函数的新版本。

  3. 每当重新构建此 lambda 以指向新版本时,我都需要更新我的 CloudFront 分配中的 Lambda ARN。

因此,我需要在我的 CloudFormation 模板中引用最新的 Lambda 版本,并在 CodePipeline 构建新版本时触发 CloudFormation 更新我的发行版。是否可以被动地做到这一点?我是否必须编写一些新函数来主动强制重新构建?有没有我不知道的另一种模式?

解决方法

我设法找到了我的问题的答案。基本上,我描述的场景是 CloudFront + Edge Lambdas 的已知限制,目前没有 AWS 解决方案。

这是相关问题讨论线程的链接。有一些第三方插件的参考资料可以帮助解决这个问题。

https://github.com/serverless/serverless/issues/3944