簡體   English   中英

我應該使用“添加目的地”從 Lambda 發送 AWS SQS 嗎?

[英]AWS SQS Send From Lambda should I use "Add Destination"?

我有一個 Lambda,它由到達 SQS 隊列的消息觸發。 我想在 Lambda 中進行一些處理,然后將消息轉發到另一個 SQS 隊列,以便由另一個 Lambda 進一步處理。 看來我可以通過兩種不同的方式做到這一點:

  1. 在 AWS 控制台 Lambda Designer 中,用戶使用“添加目標”功能將 SQS 隊列定義為目標
  2. 編寫 node.js 代碼以從我的 Lambda 中向 SQS 發送消息

首選/正確/推薦的方法是什么? 各自的優缺點是什么?

Destination 函數相當新。

一個好處是 Destination 操作由 AWS Lambda 服務觸發,而不是由函數本身觸發。 這在 Lambda 函數無法訪問目標的情況下非常有用。

例如,假設有一個無法訪問 Internet 的 VPC。 配置為使用該 VPC 的 AWS Lambda 函數將無法調用 Amazon SQS API,因為它駐留在 Internet 上。 但是,使用Amazon SQS的目的地工作,因為AWS LAMBDA服務將發送郵件,這將是VPC的以外進行。 (您也可以為 SQS 使用 VPC 終端節點,但這只是一個示例。)

另請注意,目標僅適用於異步調用的 Lambda 函數。

如果你的流程包含這么多小任務,每個任務需要不同類型的payload,你可以考慮寫一個小代碼來調用每個任務。 作為您的最終響應,我們可能會考慮根據所有小任務返回所有結果,以便您可以監控整個過程並將它們記錄到 CloudWatch Logs 中。

如果您的流程依賴於最終響應,則對於每個執行狀態代碼,例如:

  • {Status: OnSuccess} : 觸發 SNS 話題
  • {Status: OnFailure} : 發送到 SQS 隊列

此功能可幫助您減少代碼並使您的 Lambda 更加簡潔明了。

最好編寫代碼來發送消息。 由於 AWS 已經提供發送消息功能,您只需要傳遞參數即可。

AWS 還建議以編程方式刪除消息。

SQS 發送消息

SQS 刪除消息

暫無
暫無

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

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