amazon-web-services - 是否可以使用 CFT 将NotificationConfiguration 添加到现有的S3 存储桶?

标签 amazon-web-services amazon-s3 aws-lambda aws-cloudformation

我还是 AWS 服务的新手。

我想使用 CloudFormation 模板 (CFT) 在现有 S3 存储桶上添加 Lambda 触发器。这可能吗?

以下 CFT 正在尝试创建新的 S3 存储桶并在其上添加事件通知。

    S3BUCKET_NOTIFCATION = Bucket(
        "S3Bucket",
        BucketName=s3_bucket("confidential", Ref(ENV)),
        NotificationConfiguration=NotificationConfiguration(
            LambdaConfigurations=[
                LambdaConfigurations(
                    Event="s3:ObjectCreated:*",
                    Filter=Filter(
                        S3Key=S3Key(
                            Rules=[Rules(Name="prefix", Value=Ref(inputKeyPrefix)),
                                   Rules(Name="suffix", Value=".json")]
                        )
                    ),
                    Function=Ref(cost_function)
                )
            ]
        )
    )

是否可以将 NotificationConfiguration 添加到现有存储桶?

最佳答案

正如其他人所指出的,由于各种原因,这仍然是不允许的。

选项 1) 推荐

恕我直言,这里的理想方法是首先导入现有的云资源(在本例中为 S3)以由 IaC/CloudFormation 管理。然后,导入资源后,您可以将NotificationConfiguration 添加到您的CloudFormation 模板中。这种方法允许您管理现有资源,这些资源最初可能是手动配置的,以后将通过 IaC/Cfn 进行管理。

选项 2) 您的要求

如果您想通过 CloudFormation 将 NotificationConfiguration 添加到现有 S3 存储桶,解决方法是使用

a Lambda-backed custom resource created... The custom resource triggers a Lambda function, which triggers the PutBucketNotification API to add a notification configuration to your S3 bucket.

详情here

注意:请考虑选项 2) 的限制。其中一些记录在引用的链接中。

关于amazon-web-services - 是否可以使用 CFT 将NotificationConfiguration 添加到现有的S3 存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454305/

相关文章:

optimization - 防止在亚马逊 s3 上优化 jpeg

amazon-web-services - Lambda 函数与多个 SQS 队列的集成

amazon-web-services - 将 lambda 部署到多个区域的无服务器 yml 文件中的语法是什么?

javascript - npm 安装与 AWS Lambda

api - 通过第 3 方 Webhook 触发 AWS lambda 函数,转换事件请求正文并将转换后的正文发布到我的 API

javascript - 将响应缓冲区转换为 JSON

java - 通过 scala.sys.process API 在 spark-scala 中执行外部命令 s3-dist-cp

mysql - AWS Data Pipeline MySQL Nulls sed shell 命令事件 MIGRAINE

node.js - AWS S3 - 以八位字节流的形式获取 PDF 并上传到 S3 存储桶

amazon-web-services - 仅适用于移动应用程序访问的 Amazon Bucket Policy