您是否可以使用除Javascript以外的语言使用Lambda @ Edge修改AWS CloudFront事件的URI?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了您是否可以使用除Javascript以外的语言使用Lambda @ Edge修改AWS CloudFront事件的URI?相关的知识,希望对你有一定的参考价值。

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

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运行时而设计的,它们是轻量级和快速的,因为它们需要,因为CloudFront调用触发器函数同步然后阻塞(暂停自己的处理),同时等待函数返回。

以上是关于您是否可以使用除Javascript以外的语言使用Lambda @ Edge修改AWS CloudFront事件的URI?的主要内容,如果未能解决你的问题,请参考以下文章

NSubstitute ForPartsOf模拟除一个以外的所有方法?

获得除re.search以外的所有内容

如何在 Java 中播放除哔哔声以外的声音?

当您连接 2 个具有相同架构的表并检查除一个以外的所有字段是不是相等时,如何避免在 SQL 中编写冗长的 where 子句?

如何防止用户写除英文 Ios 以外的任何内容

如果我编辑EDMX文件,它是否会更改除自身以外的任何文件及其设计器文件?