我想在AWS S3存储桶中设置以下事件/通知配置: 收到文件后(s3:ObjectCreated:*),将触发两个目标:
当我尝试通过AWS控制台设置配置时,我收到以下错误消息:
Configurations overlap. Configurations on the same bucket cannot share a common event type. : s3:ObjectCreated:*, s3:ObjectCreated:*
我已尝试按照用户指南的建议通过AWS SDK(Java)设置配置,但结果类似:
Caught an AmazonServiceException, which means your request made it to Amazon S3, but was rejected with an error response for some reason.
Error Message: Configurations overlap. Configurations on the same bucket cannot share a common event type. (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: A0E8738522EA218F)
HTTP Status Code: 400
AWS Error Code: InvalidArgument
Error Type: Client
Request ID: A0E8738522EA218F
Error XML<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Configurations overlap. Configurations on the same bucket cannot share a common event type.</Message><ArgumentName>Event</ArgumentName><ArgumentValue>s3:ObjectCreated:*, s3:ObjectCreated:*</ArgumentValue><RequestId>A0E8738522EA218F</RequestId><HostId>p4qYoIXi38u3Jl3p0xpI7TFWgs0ZxsqK89oDTTy8D/tbw39NnaIT99jIvHIxt4XliRFxqNWl32M=</HostId></Error>
答案 0 :(得分:6)
我建议您将S3 Notifications
发布到SNS Topic
并让Lambda function
和SQS Queue
订阅此SNS Topic
。
这种架构可以帮助您实现所需的目标。
答案 1 :(得分:5)
最佳解决方案可能是在文件上传到S3时触发SNS通知,然后使用SNS的扇出&#39;能够发送多个,同时发送的SQS消息,然后可以独立接收和执行。
或者,如果您只想处理第2步&#39;当且仅当'步骤1&#39;处理后,您可以为步骤1&#39;触发单个SQS消息,然后仅在成功完成&#39;步骤1&#39;后,执行最后一步操作&#39; 1&#39;为第二步&#39;发送第二个sqs事件进一步处理。
答案 2 :(得分:1)
实际上发生此错误是因为您尝试通过不同的功能挂接同一事件。
转到存储桶的properties
标签,然后滚动到Events
部分
例如,如果已在该存储桶上注册了“ PUT”事件,则将无法在其他功能上注册“ PUT”事件。