您是否可以使用除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.10
或nodejs8.10
运行时属性创建函数。
您对其他运行时的观察“似乎只发出响应事件,并且不允许在修改后转发请求”并不能真正准确地表示发生的情况。 Node.js没有做任何特殊的“前进”魔术。 CloudFront解释Lambda函数的响应有效负载,以确定如何继续。如果它是请求触发器并且Lambda函数返回类似请求的结构,则CloudFront将继续处理请求,并进行修改。否则,CloudFront会将响应有效内容解释为要返回给调用者的响应。一切都由CloudFront对Lambda函数返回的解释来处理。
理论上,任何Lambda运行时都可以实现相同的目的,但Lambda @ Egde是为 - 并且目前仅支持 - Node.js运行时而设计的,它们是轻量级和快速的,因为它们需要,因为CloudFront调用触发器函数同步然后阻塞(暂停自己的处理),同时等待函数返回。
以上是关于您是否可以使用除Javascript以外的语言使用Lambda @ Edge修改AWS CloudFront事件的URI?的主要内容,如果未能解决你的问题,请参考以下文章
NSubstitute ForPartsOf模拟除一个以外的所有方法?
当您连接 2 个具有相同架构的表并检查除一个以外的所有字段是不是相等时,如何避免在 SQL 中编写冗长的 where 子句?