amazon-s3 - Cloudformation - 向现有存储桶的 SQS 发送 s3 通知

标签 amazon-s3 aws-cloudformation amazon-sqs serverless-framework

Cloudformation 如何向 SQS 发送现有存储桶的 s3 通知?

我知道如何将通知发送到 lambda 处理程序,但不确定如何为 SQS 执行此操作。我还知道,如果我在 Cloudformation 中创建存储桶资源并使用 NotificationConfiguration,我可以将其发送到 SQS,但这对我来说不是一个选项,因为该存储桶已存在于另一个 terraform 配置中。队列也是在 terraform 中创建的。

我目前将通知发送到 lambda 代理,然后将其发布到 SQS,但这并不理想。

功能:

  some_function:
    handler: app.apis.some_function.handler
    events:
      - s3:
          bucket: ${self:custom.someBucket} # arn var for existing bucket
          event: s3:ObjectCreated:*
          rules:
            - prefix: "some_prefix/"
          existing: true

有没有办法调整此配置以将通知直接发送到 SQS,而不是充当 SQS 代理的 lambda 处理程序?

最佳答案

遗憾的是,您无法轻松做到这一点,因为存储桶和 sqs 队列不受 CFN 的控制。您可以考虑两种选择:

  • 将它们导入CFN,以便由CFN管理。但这会导致您也使用 terraform 来管理它们的问题。
  • 开发一个custom resource在 CFN 中,它将采用 lambda 函数的形式。该函数可以使用 AWS API 将事件添加到现有的 S3。这也可能会导致问题,因为 terraform 不会意识到此类更改。

关于amazon-s3 - Cloudformation - 向现有存储桶的 SQS 发送 s3 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65147827/

相关文章:

amazon-web-services - 使用 AWS glue 合并多个 Parquet 文件并在 s3 中创建更大的 Parquet 文件

amazon-web-services - CloudFormation 更新支持 "Refer to Resources in Another Stack"

django - 如何在 SQS 中解码 celery 消息

amazon-web-services - 如何解锁或删除无意中被存储桶策略锁定的 AWS S3 存储桶?

django - 是否有适用于 Amazon S3 的 Python3 兼容的 Django 存储后端?

node.js - 从nodejs lambda错误启用AWS EventBridge规则

amazon-web-services - 想要通过电子邮件发送云形成输出

amazon-s3 - SQS 扩展 - 输入收据句柄无效

amazon-web-services - 如何在 SQS 队列下添加超过 20 个策略语句 - 权限

ruby-on-rails - Rails AWS-SDK : Set Expiration Date for Objects