【问题标题】:Moving existing lambda edge to Serverless Framework将现有 lambda 边缘迁移到无服务器框架
【发布时间】:2021-04-02 21:02:45
【问题描述】:

我有一个连接到 CloudFront 分配的 Lambda Edge。我想要做的是使用Serverless Framework 发布 lambda(而不是手动上传文件并单击“部署到 Lambda@Edge”)。我尝试做的是查看无服务器文档,将此 yml 文件添加到项目中并运行部署脚本

service: cloudfront-service

provider:
  name: aws
  runtime: nodejs10.x

functions:
  cfLambda:
    handler: index.handler
    events:
      - cloudFront:
        eventType: origin-request
        origin: <CloudFront-Origin-ID>

这部署了 Lambda,但未将其附加到 CloudFront(尚未发布,也没有相关的版本或触发器)。那么如何使用现有的 CloudFront 分配来做到这一点呢?

【问题讨论】:

  • 不知道无服务器,但如果您使用 AWS,为什么不使用 Cloudformation?他们的文档非常好
  • Idk,编写 Lambda 的开发人员出于某种原因决定不这样做,导致现在出现此类问题。顺便说一句,Serverless 正是这样做的,它使用 Lambda 和您在其配置文件中指定的资源创建了一个 CloudFormation 堆栈(例如,我用它来部署一个附加到 API 网关的 Lambda 函数。只需在yaml 配置文件和所有内容都已为我创建。我强烈建议您查看此框架;))
  • 同意,请忽略@hazirovich 的评论
  • 不知道这在使用无服务器时是否相关,但据我所知 CloudFront 尚不支持 lambda@edge 的 nodejs12.x。
  • 是的,我找到了,但与问题无关,因为它也不适用于 Node10:/

标签: amazon-cloudfront serverless-framework aws-lambda-edge


【解决方案1】:

如果你想使用现有的云前端发行版,这个插件@silvermine/serverless-plugin-cloudfront-lambda-edge 将无济于事。仅当您要创建一个新的时才有用。 此issue 已被报告,根据论坛,他们不支持此功能。

【讨论】:

  • 这也是我的结论。目前我只是使用无服务器来轻松地从我的 repo 推送到 lambda,然后我只是手动将函数部署到边缘。
【解决方案2】:

带有无服务器框架的 Lambda@Edge 非常简单。我们使用这个插件。

plugins:
   - '@silvermine/serverless-plugin-cloudfront-lambda-edge'

完整示例请直接访问插件作者网站:https://github.com/silvermine/serverless-plugin-cloudfront-lambda-edge

【讨论】:

  • 我看过那个包,但是找不到一些关于如何在现有发行版中使用它的信息。最近一次提交也是差不多一年前,大概是在 serverless 宣布支持 Lambda Edge 的时候,所以这个插件可能已经合并到框架本身,因为它看起来非常类似于你在 serverless.yml 中设置 CF 分发的方式跨度>
【解决方案3】:

根据您的实施,您有一个错误的缩进,所以我认为它不会真正将它附加到您的云端。有一个错误的索引不会在你的 lambda 函数上创建一个事件,而不是这个

events:
      - cloudFront:
        eventType: origin-request
        origin: <CloudFront-Origin-ID>

这样做:

events:
      - cloudFront:
          eventType: origin-request
          origin: <CloudFront-Origin-ID>

我希望这能解决您的问题。因为我自己也遇到了这个错误的缩进,并且想知道为什么它没有被正确地实现。

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 2018-11-03
    • 2017-02-12
    • 2018-09-17
    • 2019-02-09
    • 2020-10-07
    • 2020-08-05
    • 2017-11-20
    • 2022-12-09
    相关资源
    最近更新 更多