【发布时间】:2019-07-31 21:42:01
【问题描述】:
我创建了一个新的 lambda 函数,但没有将 cloudfront 视为触发器中的选项。有人知道为什么会这样吗?谢谢
【问题讨论】:
-
您用什么语言编写了 Lambda 函数?
-
我用JAVA写的
标签: aws-lambda amazon-cloudfront
我创建了一个新的 lambda 函数,但没有将 cloudfront 视为触发器中的选项。有人知道为什么会这样吗?谢谢
【问题讨论】:
标签: aws-lambda amazon-cloudfront
根据 AWS 当前文档:
确保您位于 US-East-1(弗吉尼亚北部)区域。你必须 在此区域中创建 Lambda@Edge 函数。
【讨论】:
您无法从 Lambda 控制台添加。要为缓存行为添加触发器,您需要从 CloudFront 控制台执行此操作。
【讨论】:
CloudFront 的 Lambda@Edge 集成功能要求函数以 Node.js 编写。无法直接从 CloudFront 触发其他语言的函数。
您必须使用
nodejs6.10或nodejs8.10运行时属性创建函数。
当然,在 Node.js 运行时环境中,您可以使用 AWS Javascript SDK,因此如果您有一个真正令人信服的案例,您可以使用 Javascript 函数中的该案例来调用另一个,不同的 Lambda 函数用不同的语言编写......但很难想象一个常见的情况,因为这会增加延迟和成本,但我有,例如,使用这个解决方案来允许 Lambda@Edge 到达在 VPC 内部——这只能通过从第一个内部调用第二个 Lambda 函数(可以配置为具有 VPC 访问权限)来完成(不能,因为 Lambda@Edge 函数在离查看器最近的区域中运行,而不是在单个区域中,因此它们不会在 VPC 中运行)。
【讨论】: