AWS Lambda和AWS Lambda@EDGE有什么区别?

40

简单的AWS Lambda和AWS Lambda@Edge之间有什么区别?

4个回答

32
Lambda基于特定触发器执行函数。Lambda的用例非常广泛,与许多AWS服务密切集成。您甚至可以使用它通过AWS的API简单地执行代码并将代码接收到与AWS分开的脚本中。常见用例包括仅执行Lambdas并接收输出,将其插入到API网关中以提供用户请求,修改放置在S3存储桶中的对象等。
Lambda@Edge是一项服务,允许您执行修改CloudFront行为的Lambda函数。Lambda@Edge仅在请求周期内运行,并做出影响CloudFront内容传递的逻辑决策。

https://aws.amazon.com/lambda/features/

https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html


4
  • 必须在us-east-1地区创建
  • 如果代码来自存储桶,存储桶也需要位于us-east-1地区
  • 你不能像普通lambda fn一样传递环境变量。你需要在构建过程中硬编码值,或者硬编码env并从其他地方获取值。

S3没有区域。 - NG.
1
虽然 Lambda 函数出现在 us-east-1 区域,但它实际上被复制到所有 CloudFront 边缘位置(因此称为 @edge)。 - medv
1
@NG,S3 bucket有一个地区,您甚至在bucket列表中可以找到该信息。 Bucket名称是全局的,但仍需在某个特定地区内创建bucket。 - Kamil Biela

3
  • Lambda@Edge是响应CloudFront事件的Lambda函数。
  • 您仍然需要在Lambda下创建lambda@edge函数,但Lambda@Edge函数必须在us-east-1中创建。
  • 您需要将lambda@edge配置到CloundFront分发行为上,以响应查看者请求或其他事件。

2
Lambda是一项无服务器的AWS计算服务,允许用户将代码作为函数触发器运行。在文件处理、优化以及许多其他用例中使用。
另一方面,Lambda@Edge是AWS Lambda的扩展,是CloudFront的一个功能,允许用户在应用程序附近运行代码,从而提高性能并减少延迟。
以下是官方文档对Lambda@Edge的描述: https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接