3

我有一个附加到 CloudFront 分配的 Lambda Edge。我想要做的是使用无服务器框架发布 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 分配来做到这一点呢?

4

3 回答 3

1

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

于 2020-04-06T08:06:31.983 回答
0

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

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

做这个:

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

我希望这能解决你的问题。因为我自己遇到了这个错误的缩进并且徘徊为什么它没有被正确实施。

于 2021-04-02T13:02:45.450 回答
0

Lambda@Edge with Serverless-Framework is quite easy. We use this plugin.

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

Please go directly to the plugin author's website for complete examples: https://github.com/silvermine/serverless-plugin-cloudfront-lambda-edge

于 2020-01-14T21:49:11.197 回答