AWS Serverless 非同步事件提交,支援 SQS 佇列
什麼是 AWS SQS
AWS SQS 是 AWS Simple Queue Service 的縮寫。
它負責在元件之間交換訊息。
元件 是軟體的一部分,擁有其自身的行為和資料。
AWS SQS 的工作原理
AWS SQS 的工作步驟如下:
- 將訊息新增到佇列
- 從佇列中拾取訊息
- 處理訊息
- 從佇列中刪除訊息
閱讀更多關於 AWS SQS 的資訊
在此處閱讀 AWS SQS 簡介在此處閱讀 AWS SQS 概覽
在此處閱讀 AWS SQS 限制
AWS SQS 影片
W3schools.com 與 AWS Web Services 合作,為我們的學生提供數字培訓內容。
使用 SQS 佇列進行非同步事件提交
Amazon SQS 在 Lambda 和 API 請求之間建立非同步連線。
它能夠滿足請求,無論 Lambda 函式執行多久。
SQS 佇列內建重試機制,以防任何佇列失敗。
Lambda 會保持客戶端連線,直到資料可用。
這個過程被稱為長輪詢。
非同步事件提交的工作方式
當客戶端傳送請求時,它會經過 API Gateway。
API Gateway 將請求傳送到 Amazon SQS 並接收訊息 ID。
透過訊息 ID,客戶端可以跟蹤訊息。
訊息儲存在 Lambda 輪詢的佇列中。
當 Lambda 發現佇列中有新訊息時,它會呼叫 Lambda 函式。
Lambda 函式隨後處理訊息。
相關閱讀
AWS Cloud Lambda將 AWS Lambda 與 Amazon SQS 結合使用
標準佇列與 FIFO 佇列
Amazon SQS 有兩種型別的佇列:標準佇列和FIFO 佇列。
FIFO 是 First-In-First-Out(先進先出)的縮寫。
這意味著先進入佇列的資料應該先被檢索。
下表顯示了兩者之間的區別。
FIFO | 標準 |
---|---|
每秒可提交 300 條訊息,每個 API 操作 | 每秒可提交幾乎無限數量的訊息 |
可能多次傳遞訊息 | 可能多次傳遞訊息 |
訊息順序根據組 ID 保證 | 訊息順序不保證 |