【问题标题】:What is the difference between AWS lambda and AWS Lambda@EDGE?AWS lambda 和 AWS Lambda@EDGE 有什么区别?
【发布时间】:2019-01-15 15:00:54
【问题描述】:

简单的 aws lambda 和 aws lambda@edge 有什么区别?

【问题讨论】:

    标签: aws-lambda serverless-framework serverless


    【解决方案1】:

    Lambda 根据某些触发器执行函数。 Lambda 的用例非常广泛,并且与许多 AWS 服务高度集成。您甚至可以使用它通过 AWS 的 API 简单地执行代码,并将代码与 AWS 分开接收到您的脚本中。常见用例包括简单地执行 Lambda 并接收输出、插入 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

    【讨论】:

      【解决方案2】:
      • Lambda@Edge 是响应 CloudFront 事件的 Lambda 函数。
      • 您仍然在 Lambda 下创建 lambda@edge 函数,但 Lambda@Edge 函数必须在 us-east-1 中创建。
      • 您需要根据查看器请求或其他请求将 lambda@edge 配置为 cloundfront 分发行为。

      【讨论】:

        【解决方案3】:
        • 必须在 us-east-1 区域中创建
        • 如果代码取自存储桶,存储桶也需要位于 us-east-1 区域中
        • 您不能以与普通 lambda fn 相同的方式传递环境变量。您需要在构建过程中对值进行硬编码,或者对环境进行硬编码并从其他地方获取值。

        【讨论】:

        • S3 没有区域
        • 虽然 lambda 出现在 us-east-1 中,但它实际上已复制到所有 CloudFront 边缘位置(因此是 @edge)。
        • @NG 有 s3 存储桶的区域,您甚至可以在存储桶列表中找到该信息。存储桶名称是全局的,但您仍然在区域中创建存储桶。
        【解决方案4】:

        Lambda 是一种无服务器 AWS 计算服务,允许用户将代码作为函数触发器运行。在文件处理、优化方面,很多用例。

        另一方面,Lamda@Edge 是 AWS lambda 的扩展,是 cloudfront 的一项功能,允许用户在更靠近应用程序的地方运行代码,从而提高性能并减少延迟。

        这是官方文档很好地描述了 Lambda@Edge https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-12
          • 1970-01-01
          • 2019-10-20
          • 1970-01-01
          • 2019-11-21
          • 2017-10-21
          • 2021-02-12
          • 2022-01-21
          相关资源
          最近更新 更多