由多个 s3 存储桶触发的无服务器单 lambda

时间:2021-03-11 14:33:33

标签: amazon-s3 serverless-framework

在我的无服务器 YAML 文件中,我定义了一个 lambda 函数,其中包含来自不同存储桶的多个 S3 事件,这些事件已经存在,如下所示

df$ddate <- format(as.Date(df$ddate), "%d/%m/%Y")

“无服务器部署”命令失败并显示以下文本:

functions:
  my-lambda:
    handler: ...
    name: my-lambda
    description: 'Fetcher'
    environment:
      env_host: aws
    events:
      - s3:
          bucket: bucket1
          existing: true
      - s3:
          bucket: bucket2
          existing: true

是否可以在 Serverless 中为一个 lambda 配置多个 s3 存储桶?

1 个答案:

答案 0 :(得分:1)

很遗憾没有。

来自Serverless doc

<块引用>

重要提示:每个函数只能附加 1 个现有的 S3 存储桶。

AWS Lambda 只允许一个 Amazon S3 存储桶作为事件源。您可以使用不同的事件类型在 s3 中多次定义 events,但它仍然必须来自同一个存储桶,请参阅 here

您可以使用多次编写的 handler 来定义多个函数,如下所示:

functions:
  my-lambda-bucket1:
    handler: ...
    name: my-lambda-bucket1
    description: 'Fetcher with bucket1'
    environment:
      env_host: aws
    events:
      - s3:
          bucket: bucket1
          existing: true
  my-lambda-bucket2:
    handler: ...
    name: my-lambda-bucket2
    description: 'Fetcher with bucket2'
    environment:
      env_host: aws
    events:
      - s3:
          bucket: bucket2
          existing: true