簡體   English   中英

如何將相同的Amazon S3事件定向到幾個不同的SQS隊列中?

[英]How to direct the same Amazon S3 events into several different SQS queues?

我正在使用AWS Lambda函數(在Python中),該函數處理出現在相同Amazon S3存儲桶和文件夾中的新文件。

當新文件出現在s3:/folder1/folderA, B, C ,將生成事件s3:ObjectCreated:*並進入sqs1 ,然后由Lambda1處理(成功處理后從sqs1刪除)。

我需要與出現在s3:/folder1/folderA (但不是folderB或C)中的同一新文件相關的相同事件,也要進入sqs2 ,由Lambda2處理。 Lambda1修改該文件並將其保存在某個位置,例如, Lambda2將該文件保存到DB中。

但是AWS文檔說:

使用篩選器的通知配置不能定義前綴重疊,后綴重疊或前綴和后綴重疊的過濾規則。

那么問題是如何繞過這個限制? 是否有已知的推薦或標准解決方案?

看來您的要求是:

  • 將文件添加到folderA ,您希望將消息發送到sqs1 sqs2 (可以並行執行)
  • 將文件添加到folderB ,您希望將消息發送到sqs2

這可以通過為每個文件夾配置單獨的事件來完成:

  • 事件A: Prefix = folderA
  • 事件B: Prefix = folderB
  • 事件C: Prefix = folderC

然后,您可以使用Amazon SNS主題扇出多個隊列:

eventA -> sns1 +-> sqs1 -> Lambda1
               |
               +-> sqs2 -> Lambda2

eventB -> sqs1 -> Lambda1

eventC -> sqs1 -> Lambda1

代替設置(S3-> SQS)的S3對象通知,您應該設置(S3-> Lambda)的通知。

在lambda函數中,您解析S3事件,然后編寫自己的邏輯,以將有關S3事件的任何內容發送到所需的任何SQS隊列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM