在本教學中,您會學習如何使用 Amazon Simple Queue Service (Amazon SQS) 設定非同步簡訊。Amazon SQS 是可讓應用程式元件在雲端通訊的 AWS 服務。您將使用 Amazon SQS 主控台建立和設定訊息佇列、傳送訊息、接收和刪除該訊息,然後刪除佇列。

您在本教學中使用的 AWS 服務皆涵蓋在「AWS 免費方案」範圍內。

在 AWS 上使用簡訊需要帳戶

建立免費帳戶

AWS 免費方案包含 1,000,000 個 Amazon Simple Queue Service 請求。

查看 AWS 免費方案詳細資訊 »

 


a. 按一下這裡,即會在新瀏覽器視窗開啟 AWS 管理主控台,即可讓此逐步指南持續保持開啟狀態。  當畫面載入時,輸入您的使用者名稱和密碼以開始使用。然後在搜尋列中輸入 queue,選取 Simple Queue Service 以開啟主控台。

tmt_send-receive-async-messages_1a

(按一下以縮放)

tmt_send-receive-async-messages_1a

b. 若顯示 SQS 主控台登陸頁面 (如螢幕擷取畫面所示),請按一下「Get Started Now (立即開始使用)」。若未顯示此頁面,請跳至下個步驟。

tmt_send-receive-async-messages_1b

(按一下以縮放)

tmt_send-receive-async-messages_1b

在此步驟中,您會建立並設定一個 Amazon SQS 佇列。佇列是一種可靠、具備高度可擴展性的緩衝區,其可存放周遊於各個分散式應用程式或微服務之間的訊息。佇列可協助去耦應用程式、連接微服務、批次處理任務或存放通知。

本教學中的使用案例,會模擬儲存來自電子商務應用程式的傳入訂單。


a. 首先,我們會建立一個簡易佇列,以存放在商店下定的訂單。在「Queue Name (佇列名稱)」欄位中,輸入 Orders

tmt_send-receive-async-messages_2a

(按一下以縮放)

tmt_send-receive-async-messages_2a

b. 在本教學中不需要採用嚴格的訂購程序,因此不會變更佇列類型。將「Standard Queue (標準佇列)」維持選取狀態。

tmt_send-receive-async-messages_2b

(按一下以縮放)

tmt_send-receive-async-messages_2b

c. 您可以設定佇列來修改各項設定,例如保留期間、訊息大小上限和交付延遲。在本教學中,我們會保留預設參數。選擇「Quick-Create Queue (快速建立佇列)」。

tmt_send-receive-async-messages_2c

(按一下以縮放)

tmt_send-receive-async-messages_2c

d. 您已在佇列清單中建立並選取新的佇列。

tmt_send-receive-async-messages_2d

(按一下以縮放)

tmt_send-receive-async-messages_2d

建立佇列後,即可準備從線上商店接收訊息,以擷取每筆新訂單的詳細資訊。


a.  您已在清單中選取佇列。從「Queue Actions (佇列動作)」中,選取「Send a Message (傳送訊息)」。此時會顯示「Send a Message to Orders (傳送訊息至訂單)」對話方塊。

tmt_send-receive-async-messages_3a

(按一下以縮放)

tmt_send-receive-async-messages_3a

b. 此時會顯示「Send a Message to Orders (傳送訊息至訂單)」對話方塊。在「Message Body (訊息本文)」標籤上,輸入下列文字以表示範例訂單:

1 x Widget @ $29.99 USD
2 x Widget Cables @ $4.99

tmt_send-receive-async-messages_3b

(按一下以縮放)

tmt_send-receive-async-messages_3b

c. 選取「Message Attributes (訊息屬性)」標籤,以新增一些關於此訊息的選用中繼資料,供您輕鬆處理。讓我們新增訂單類型至訂單。在「Name (名稱)」欄位中輸入 Order-Type,在「Type (類型)」欄位中輸入 String,然後在「Value (值)」欄位中輸入 Online。按一下「Add Attribute (新增屬性)」。

tmt_send-receive-async-messages_3c

(按一下以縮放)

tmt_send-receive-async-messages_3c

d. 若要立即傳送訊息,請按一下「Send Message (傳送訊息)」。確認在「Send a Message to Orders (傳送訊息至訂單)」對話方塊中,已顯示完成傳送的訊息。按一下「Close (關閉)」。

tmt_send-receive-async-messages_3d

(按一下以縮放)

tmt_send-receive-async-messages_3d

將訊息傳送至佇列後,另一個應用程式即可從佇列中取用該訊息並對其執行動作。在本範例中,您會擷取訊息以檢視訂單,然後再刪除該訊息。


a. 確認已在佇列清單中選取「Orders (訂單)」佇列。接著從「Queue Actions (佇列動作)」中,選取「View/Delete Messages (檢視/刪除訊息)」。

tmt_send-receive-async-messages_4a

(按一下以縮放)

tmt_send-receive-async-messages_4a

b. 此時會顯示「View/Delete Messages in Orders (檢視/刪除訂單中的訊息)」對話方塊。您從佇列中請求訊息時,未指定請求特定訊息。而是指定想要擷取的訊息數上限 (最多 10 則)。

按一下「Start Polling for messages (啟動訊息輪詢)」,以從佇列中擷取訊息。

tmt_send-receive-async-messages_4b

(按一下以縮放)

tmt_send-receive-async-messages_4b

c. 若消費者已接收並處理訊息,即會從佇列中刪除該訊息。選取要刪除的訊息,然後選擇「Delete 1 Message (刪除 1 則訊息)」。

tmt_send-receive-async-messages_4c

(按一下以縮放)

tmt_send-receive-async-messages_4c

d. 顯示「Delete Messages (刪除訊息)」對話方塊。勾選訊息旁的方塊,然後按一下「Yes, Delete Checked Messages (是,刪除已勾選的訊息)」。接著即會刪除選取的訊息。選擇「Close (關閉)」。

tmt_send-receive-async-messages_4d

(按一下以縮放)

tmt_send-receive-async-messages_4d

若您不再需要使用 Amazon SQS 佇列,根據最佳實務建議您刪除該佇列。


a. 在佇列清單中,選取「Orders (訂單)」佇列。然後從「Queue Actions (佇列動作)」中,選取「Delete Queues (刪除佇列)」。

tmt_send-receive-async-messages_5a

(按一下以縮放)

tmt_send-receive-async-messages_5a

b. 顯示「Delete Queues (刪除佇列)」對話方塊。即使在佇列中仍有訊息,依然可以刪除佇列。選擇「Yes, Delete Queue (是,刪除佇列)」。已刪除佇列。

tmt_send-receive-async-messages_5b

(按一下以縮放)

tmt_send-receive-async-messages_5b

您已建立第一個 Amazon Simple Queue Service (Amazon SQS) 訊息佇列、將訊息傳送至佇列、接收和刪除訊息,以及刪除佇列。您現已準備使用 Amazon SQS 佇列,在各個分散式應用程式元件與微服務之間存放和移動資料。

您現已學會如何使用 Amazon Simple Queue Service 來傳送和接收訊息、請選擇下列其中一個選項,深入探究關於簡訊技巧的資訊。

進一步了解

了解適用於 Amazon Web Services (AWS) 訊息佇列的功能、元件和使用案例概觀。瀏覽 Amazon SQS 網頁 »

深入探究

探索 Amazon Simple Queue Service 的各個佇列類型、主要功能和架構。閱讀文件 »

查看運作情形

聆聽諸如 Capital One 等客戶如何使用 Amazon SQS 和 Amazon SNS,以縮減和擴展應用程式。觀賞網路研討會 »