登录
首页 >  Golang >  Go问答

您能否使用 Lambda@Edge 以 JavaScript 以外的语言修改 AWS CloudFront 事件上的 URI?

来源:stackoverflow

时间:2024-04-14 17:36:35 261浏览 收藏

golang学习网今天将给大家带来《您能否使用 Lambda@Edge 以 JavaScript 以外的语言修改 AWS CloudFront 事件上的 URI?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我正在尝试进行一些 AB 测试,并在我们的 AWS CloudFront 设置中插入 Lambda 似乎是一个好方法。我的公司在 NodeJs 方面存在问题。他们被一些使用它的老开发者烧毁并禁止使用。

Lambda 支持多种语言,所以没什么大不了的。但经过一些研究并查看来源后。似乎只有 Javascript 能够与 CloudFront 事件交互并转发请求。所有其他语言的库似乎只发出响应事件,并且不允许在修改后转发请求。

我是否遗漏了什么,或者这种情况仅支持 JS?


解决方案


Lambda@Edge 仅支持 Node.js 运行时。

您必须使用 nodejs6.10nodejs8.10 运行时属性创建函数。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-requirements-limits.html#lambda-requirements-lambda-function-configuration

您对其他运行时的观察“似乎只发出响应事件,并且不允许在修改后转发请求”实际上并不能准确表示所发生的情况。 Node.js 没有执行任何特殊的“转发”魔法。 CloudFront 解释来自 Lambda 函数的响应负载以确定如何继续。如果它是请求触发器并且 Lambda 函数返回类似于请求的结构,则 CloudFront 将继续处理修改后的请求。否则,CloudFront 会将响应负载解释为要返回给调用者的响应。一切都由 CloudFront 对 Lambda 函数返回内容的解释来处理。

理论上,任何 Lambda 运行时都可以实现相同的目的,但 Lambda@Egde 是为 Node.js 运行时设计的(目前仅支持 Node.js 运行时),它们需要轻量级且快速,因为 CloudFront 会调用触发函数同步,然后在等待函数返回时阻塞(暂停其自身的处理)。

本篇关于《您能否使用 Lambda@Edge 以 JavaScript 以外的语言修改 AWS CloudFront 事件上的 URI?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>