【问题标题】:No trigger on Lambda when deploying on existing S3 bucket在现有 S3 存储桶上部署时没有触发 Lambda
【发布时间】:2021-07-08 15:46:54
【问题描述】:

我正在尝试使用无服务器框架创建在现有 S3 存储桶上的文件上传时触发的 AWS Lambda。

我设法部署了 Lambda,但无法通过在我现有的 S3 存储桶上上传来触发它。


我很清楚

  • existing 参数存在于serverless.yml
functions:
  copyToBufferS3:
    handler: handler.copy_to_buffer_s3
    description: Copies newly uploaded technical logs to a buffer S3 bucket
    events:
      - s3:
          bucket: my.bucket.name
          event: s3:ObjectCreated:*
          rules:
            - suffix: suffix.ext
          existing: true
  • 这样的参数会创建另一个名为 <service name>-<stage>-custom-resource-existing-s3 的 lambda:我可以在控制台中看到它(所以 existing 参数及其部分实际上已被考虑在内,耶!)
  • serverless.yml 中缩进的重要性:我仔细检查了 - s3 部分下的参数是 4 个空格缩进

问题是:这两个 lambda 表达式都没有触发器集。

我应该如何编辑我的 serverless.yml(或其他内容)以在文件上传时真正触发我的 lambda?

【问题讨论】:

  • 你查看自定义资源的日志了吗?
  • @Maurice 你这是什么意思?在 CloudFormation 控制台中我新创建的堆栈的“事件”部分中,除了“CREATE_IN_PROGRESS”、“UPDATE_COMPLETE”、“UPDATE_COMPLETE_CLEANUP_IN_PROGRESS”和“UPDATE_COMPLETE”之外什么都没有。
  • 自定义资源是 Lambda 函数,通常配置为记录到 CloudWatch ;-)

标签: amazon-s3 aws-lambda triggers serverless-framework


【解决方案1】:

原来我只是没有权限...显示触发器。

令我惊讶的是,在这种情况下,AWS 控制台显示“触发器 (0)”,就好像它在此部分中实际上是空的一样(而不是像通常那样明确警告权限)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2022-01-07
    • 2020-02-05
    • 2021-07-03
    相关资源
    最近更新 更多