簡體   English   中英

如何正確地將消息發送到隊列 - Javascript / AWS

[英]How to correctly send a message to the Queue - Javascript / AWS

我有一個接收 SQSEvent 的簡單 lambda。 我已經設置了一個 DLQ(死信隊列)以防 lambda 無法處理消息。

const lambdaHandler = async (event: SQSEvent): Promise<APIGatewayProxyResult> {

  if(!event || !event.Records || !event.Records.length || !event.Records[0].body) {
        return {
            statusCode: 400,
            body: JSON.stringify({ message: 'Event and event body is required' })
        };
    } 

我認為我處理不當。 我發送了 HTTP 響應,並像 API 一樣處理錯誤響應。

將消息發送到 DLQ 的正確方法應該是什么?

如果 Lambda function 返回錯誤響應,消息將被移動到 SQS 隊列。 最簡單的方法是拋出異常。 如果每個 Lambda 事件有可能接收到多個 SQS 消息(如果您將消息批處理大小設置為大於1的值),那么您應該考慮以以下格式返回消息批處理響應

{ 
  "batchItemFailures": [ 
        {
            "itemIdentifier": "id2"
        },
        {
            "itemIdentifier": "id4"
        }
    ]
}

最佳實踐實際上是始終以該格式返回響應,如果沒有錯誤,它將只是一個空列表。

暫無
暫無

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

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