【问题标题】:How can I delete an existing S3 event notification?如何删除现有的 S3 事件通知?
【发布时间】:2021-05-26 16:05:47
【问题描述】:

当我尝试从 S3 删除事件通知时,我收到以下消息:

在文本中:

无法验证以下目标配置。无权调用函数 [arn:aws:lambda:eu-west-1:FOOBAR:function:FOOBAR]。 (arn:aws:lambda:eu-west-1:FOOBAR:function:FOOBAR, null)

我的组织中似乎没有人能够删除它——甚至是管理员。

当我尝试通过 Web 界面在 AWS Lambda 中将相同的 S3 事件通知设置为触发器时,我得到了

配置定义不明确。如果相同事件类型的前缀重叠,则两条规则中不能有重叠的后缀。 (服务:Amazon S3;状态代码:400;错误代码:InvalidArgument;请求 ID:FOOBAR;S3 扩展请求 ID:FOOBAR/FOOBAR/FOOBAR)

如何删除现有的事件通知?我该如何进一步调查这个问题?

【问题讨论】:

    标签: amazon-s3 aws-lambda


    【解决方案1】:

    我今晚遇到了同样的问题,做了以下事情:

    1) 发出命令:

    aws s3api put-bucket-notification-configuration --bucket=mybucket --notification-configuration="{}"
    

    2) 在控制台中,删除麻烦事件。

    【讨论】:

    • 如果您想删除该 s3 存储桶中存在的每个事件,这将起作用
    【解决方案2】:

    假设您从 CLI 获得了更好的权限:

    aws s3api put-bucket-notification-configuration --bucket=mybucket --notification-configuration='{"LambdaFunctionConfigurations": []}'
    

    【讨论】:

      【解决方案3】:

      他们不会让你,你必须创造更多的触发器,你最终要为它们付费。

      【讨论】:

      • 考虑添加对文档的引用以支持您的回答。
      【解决方案4】:

      AWS CLI 中没有“s3api 删除通知配置”。仅存在“s3api put-bucket-notification-configuration”,它将覆盖 s3 存储桶中任何先前存在的事件。所以,如果你想删除一个特定的事件,你只需要以编程方式处理它。

      类似这样的: 步骤 1. 执行 's3api get-bucket-notification-configuration' 并获取 s3-notification.json 文件。 步骤 2. 现在编辑此文件以使用您的代码访问所需的 s3-notification.json 文件。 步骤 3. 最后,执行 's3api put-bucket-notification-configuration' (aws s3api put-bucket-notification-configuration --bucket my-bucket --notification-configuration file://s3-notification.json)

      我在 AWS CLI 中处理过逻辑,它需要一个 jq 命令来合并 json 输出

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-13
        • 2019-08-06
        • 2018-06-10
        • 2019-01-12
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 2021-11-21
        相关资源
        最近更新 更多