ในบทแนะนำนี้ คุณจะใช้สถานการณ์การส่งข้อความ Fanout โดยใช้ Amazon Simple Notification Service (SNS) และ Amazon Simple Queue Service (SQS) ในเหตุการณ์นี้ ข้อความได้รับการ "ส่ง" ไปยังสมาชิกหลายราย ซึ่งช่วยกำจัดความจำเป็นที่จะต้องตรวจสอบเป็นระยะ หรือสำรวจเพื่ออัปเดตและเปิดใช้งานการประมวลผลข้อความแบบอะซิงโครนัสแบบขนานโดยสมาชิก

เพื่อให้มองเห็นภาพ เราจะสมมุติว่าคุณกำลังพัฒนาแอปพลิเคชันบนคลาวด์ที่ส่งข้อความ Amazon SNS ไปยังหัวข้อ ไม่ว่าจะได้มีการสั่งซื้อในร้านค้าออนไลน์หรือไม่ คิว Amazon SQS ที่ได้ลงทะเบียนในหัวข้อนั้นแต่ละรายจะได้รับการแจ้งเตือนที่เหมือนกันสำหรับคำสั่งซื้อใหม่

บริการของ AWS ที่คุณใช้ในบทแนะนำนี้ยังอยู่ในช่วง AWS Free Tier

กำลังส่งการแจ้งเตือนเหตุการณ์ fanout บน AWS ต้องใช้บัญชี

สร้างบัญชีฟรี

AWS Free Tier มีการเผยแพร่ 1,000,000 รายการสำหรับ Amazon Simple Notification Service และคำขอ 1,000,000 รายการสำหรับ Amazon Simple Queue Service

ดูรายละเอียดของ AWS Free Tier »

 

เมื่อคุณคลิกที่นี่ AWS Management Console จะเปิดขึ้นในหน้าต่างเบราว์เซอร์บานใหม่ เพื่อที่คุณจะได้เปิดคำแนะนำการใช้งานแบบทีละขั้นตอนนี้ค้างไว้ เมื่อหน้าจอโหลดข้อมูลแล้ว ให้ใส่ชื่อผู้ใช้และรหัสผ่านของคุณเพื่อเริ่มต้นใช้งาน จากนั้นจึงพิมพ์ notification ในแถบการค้นหาแล้วเลือก Simple Notification Service เพื่อเปิดคอนโซลการบริการ

tmt_send-fanout-event-notifications_1a

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_1a

ก. หากหน้าเริ่มต้นของ SNS Console ปรากฏขึ้น ให้คลิก Next step (ขั้นตอนถัดไป)

1a-sns-console-home

(คลิกเพื่อซูม)

1a-sns-console-home

ในขั้นตอนนี้ คุณจะได้สร้างหัวข้อ Amazon SNS หัวข้อคือช่องทางการสื่อสารเพื่อส่งข้อความและลงทะเบียนรับการแจ้งเตือน ในตัวอย่างนี้ แอปพลิเคชันอีคอมเมิร์ซตัวอย่างจะส่งข้อความไปยังหัวข้อ Amazon SNS ทุกครั้งที่มีการสั่งซื้อใหม่ในร้านค้าออนไลน์ 


ก.  ในหน้าสร้างหัวข้อ พิมพ์ New-Orders ในกล่องชื่อหัวข้อ จากนั้นคลิก Create topic

2a-topic-create-wf

(คลิกเพื่อซูม)

2a-topic-create-wf

ข. หน้ารายละเอียดหัวข้อยืนยันว่าสร้างหัวข้อสำเร็จแล้ว

2b-topic-create-confirm

(คลิกเพื่อซูม)

2b-topic-create-confirm

หลังจากคุณได้สร้างหัวข้อด้วย Amazon SNS แล้ว คุณจะสร้างคิว Amazon SQS ที่จะลงทะเบียนหัวข้อนั้น

เมื่อคุณลงทะเบียนหลายคิวสำหรับหัวข้อเดียวกัน แต่ละคิวจะได้รับการแจ้งเตือนที่เหมือนกันทุกครั้งที่มีการส่งข้อความไปยังหัวข้อ บริการที่เชื่อมต่อกับคิวเหล่านั้นสามารถประมวลผลคำสั่งแบบอะซิงโครนัสและขนาน

ตัวอย่างเช่น อินสแตนซ์ของเซิร์ฟเวอร์ Amazon EC2 ที่เชื่อมต่อกับหนึ่งในคิวสามารถจัดการประมวลผลหรือการดำเนินการตามคำสั่ง ในขณะที่อินสแตนซ์ของเซิร์ฟเวอร์อื่นสามารถเชื่อมต่อกับคลังข้อมูลสำหรับการวิเคราะห์คำสั่งซื้อทั้งหมดที่ได้รับ

เพื่อทำให้เรื่องง่ายขึ้น เราจะไม่แนบอินสแตนซ์ EC2 กับคิวในบทแนะนำนี้


ก. คลิกที่นี่เพื่อเปิด Amazon SQS Console ในหน้าต่างเบราว์เซอร์ใหม่ หากหน้าเริ่มต้น SQS ปรากฏขึ้น ให้คลิก Get Started Now (เริ่มต้นเลย) หากหน้าไม่ปรากฏขึ้น ให้ไปต่อยังขั้นตอนถัดไป

 

tmt_send-fanout-event-notifications_3a

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_3a

ข. คิวแรกของเราจะเก็บคำสั่งซื้อสำหรับบริการระบบสินค้าคงคลังแบบสมมุติที่ทำหน้าที่ติดตามสินค้า รวมไปจนถึงเพิ่มและลบสิ่งเหล่านั้นออกจากสินค้าคงคลังตามแต่ละคำสั่งซื้อตามความจำเป็น  

ในหน้า Create New Queue ให้ป้อน Orders-for-Inventory ลงในช่อง Queue Name เลือก Standard Queue เอาไว้แล้วคลิกที่ Quick-Create Queue (สร้างคิวด่วน)

tmt_send-fanout-event-notifications_3b

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_3b

c. ระบบจะสร้างคิวใหม่ของคุณขึ้นแล้วเลือกไว้ในรายการคิว จากนั้น คุณจะสร้างคิวที่สองเพื่อจัดการการวิเคราะห์คำสั่งซื้อ

คลิกCreate New Queue เพื่อสร้างอีกคิวสำหรับเก็บคำสั่งซื้อให้กับ Analytics Service

tmt_send-fanout-event-notifications_3c

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_3c

ง. ป้อน Orders-for-Analytics ในช่องQueue Name แล้วคลิกQuick-Create Queue 

tmt_send-fanout-event-notifications_3d

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_3d

จ. คิวใหม่จะปรากฏขึ้นในรายการคิว

tmt_send-fanout-event-notifications_3e

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_3e

เมื่อคุณได้สร้างคิว Amazon SQS ทั้งสองแล้ว คุณจะต้องลงทะเบียนกับหัวข้อ Amazon SNS ที่เผยแพร่การแจ้งเตือนคำสั่งซื้อใหม่


ก. จากรายการของคิว เลือกคิว Orders-for-Inventory และ order-for-Analytics จาก Queue Actions (จัดคิวการดำเนินการ) เลือก Subscribe Queues to SNS Topic (ลงทะเบียนคิวกับหัวข้อ SNS)

tmt_send-fanout-event-notifications_4a

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_4a

ข. กล่องโต้ตอบ Subscribe to a Topic จะปรากฏขึ้น จากรายการแบบดรอปดาวน์ Choose a Topic ให้เลือกหัวข้อ New-Orders ของ Amazon SNS

หัวข้อ SNS ของคุณปรากฏในรายการเนื่องจากคุณสร้างขึ้นจากบัญชีเดียวกับที่คุณใช้สร้างคิว Amazon SQS ของคุณ หากหัวข้อ SNS สร้างโดยบัญชีอื่น คุณสามารถลงทะเบียนได้โดยใช้ Topic ARN สำหรับรายละเอียดเพิ่มเติม โปรดดู Amazon SNS documentation

ไม่ต้องเปลี่ยนแปลงข้อมูลใด ๆ ในส่วน Topic Region แล้วคลิกที่ Subscribe (ลงทะเบียน)  

tmt_send-fanout-event-notifications_4b

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_4b

ค. กล่องโต้ตอบ Topic Subscription Result จะปรากฏขึ้น คลิก OK (ตกลง)

tmt_send-fanout-event-notifications_4c

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_4c

ตอนนี้คิวของคุณได้รับการลงทะเบียนในหัวข้อแล้ว ในขั้นตอนนี้ คุณจะจำลองคำสั่งซื้อใหม่โดยให้แอปพลิเคชันอีคอมเมิร์ซที่สมมุติขึ้นส่งข้อความไปยังหัวข้อพร้อมรายละเอียดการสั่งซื้อ


ก. ในหน้ารายละเอียดหัวข้อ New Orders ของ Amazon SNS console ให้คลิก Publish message

 

5a-topic-create-confirm

(คลิกเพื่อซูม)

5a-topic-create-confirm

ข. หน้า Publish Message to topic จะปรากฏขึ้น ในกล่องหัวเรื่อง ให้พิมพ์ใบสั่งซื้อ 123-4567890-1234567 ในช่องข้อความ ให้ป้อนข้อความต่อไปนี้เพื่อแสดงคำสั่งซื้อตัวอย่าง:

1 x วิดเจ็ต @ $29.99 USD

2 x สายวิดเจ็ต @ $4.99

คลิกที่ Publish message (เผยแพร่ข้อความ) กล่องโต้ตอบการยืนยันจะปรากฏขึ้น

 

5b-sns-send-message-wf

(คลิกเพื่อซูม)

5b-sns-send-message-wf

เมื่อมีการเผยแพร่ข้อความใหม่ Amazon SNS จะส่งข้อความนั้นไปยังทุกตำแหน่งข้อมูลที่ลงทะเบียนหัวข้อ ในสถานการณ์สมมติ fanout เช่นนี้ คิว Amazon SQS เป็นตำแหน่งข้อมูล

ในขั้นตอนนี้ คุณจะยืนยันว่าคิวได้รับการแจ้งเตือนคำสั่งซื้อใหม่โดยอาศัยการดูข้อความที่หัวข้อส่งไปยังคิว


ก. ใน Amazon SQS console ให้ทำเครื่องหมายที่ช่องสำหรับคิว Orders-for-Inventory จากรายการคิว จากรายการดรอปดาวน์ Queue Action ให้เลือก View/Delete Messages (ดู/ลบข้อความ)

 

tmt_send-fanout-event-notifications_6a

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6a

ข. คลิก Start Polling for Messages (เริ่มทำโพลล์สำหรับข้อความ)


tmt_send-fanout-event-notifications_6b

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6b

ค. กล่องโต้ตอบView/Delete Messages in Orders-for-Inventory จะปรากฏ

tmt_send-fanout-event-notifications_6c

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6c

ง. ในคอลัมน์ Body ให้คลิก More Details กล่อง Message Details จะมีเอกสาร JSON ที่มีหัวเรื่องและข้อความที่คุณเผยแพร่ไปยังหัวข้อ  

คุณได้ยืนยันว่าคิว Orders-for-Inventory ได้รับการแจ้งเตือนเกี่ยวกับคำสั่งซื้อใหม่จากหัวข้อ New-Orders  

คลิก Close (ปิด)

 

tmt_send-fanout-event-notifications_6d

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6d

จ. เราจะสมมุติว่าบริการสินค้าคงคลังสมมุติของเราเสร็จสิ้นการประมวลผลข้อความนี้แล้ว และตอนนี้เราสามารถลบข้อความออกจากคิวได้อย่างปลอดภัยแล้ว 

คลิก Delete 1 Message เพื่อยืนยันให้คลิกYes, Delete Checked Messages แล้วคลิก Close (ปิด)

 

tmt_send-fanout-event-notifications_6e

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6e

ฉ. ทำขั้นตอนที่ 6 ก. ถึง 6 จ. ซ้ำเพื่อยืนยันว่าคิว Orders-for-Analytics ก็ได้รับการแจ้งเตือนเกี่ยวกับคำสั่งซื้อใหม่เช่นกัน

tmt_send-fanout-event-notifications_6f

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_6f

ในขั้นตอนนี้ คุณจะลบทรัพยากรที่ได้สร้างขึ้นสำหรับบทแนะนำสอนการใช้งานนี้ ซึ่งได้แก่ การลงทะเบียนหัวข้อ, หัวข้อ, และคิว วิธีปฏิบัติที่ดีที่สุดคือการลบทรัพยากรที่คุณไม่ได้ใช้งานแล้วเพื่อจะได้ไม่ต้องเสียค่าใช้จ่าย


ก. เปิด Amazon SNS console แล้วคลิกTopics ในบานหน้าต่างนำทางด้านซ้าย

เลือกหัวข้อNew-Orders

คลิกDelete เพื่อลบหัวข้อ

 

7a

(คลิกเพื่อซูม)

7a

ข. กล่องโต้ตอบเพื่อยืนยันการ Delete (ลบ) จะปรากฏ พิมพ์ delete me ในกล่องโต้ตอบนั้น แล้วคลิก Delete หัวข้อกับรายการที่ลงทะเบียนไว้จะถูกลบ ตอนนี้คุณสามารถปิดหน้าต่างเบราว์เซอร์ SNS (แต่ไม่ต้องออกจากระบบ เนื่องจากคุณยังต้องลบคิวใน SQS console)

7b

(คลิกเพื่อซูม)

7b

ค. ใน Amazon SQS console ให้เลือกคิว Orders-for-Inventory และ order-for-Analytics จากQueue Actions ให้เลือก Delete Queues


tmt_send-fanout-event-notifications_7c

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_7c

ง. กล่องโต้ตอบ Delete Queues จะปรากฏ คลิกYes, Delete 2 Queues คิวจะถูกลบ

ตอนนี้คุณสามารถออกจาก Amazon SQS console ได้แล้ว

tmt_send-fanout-event-notifications_7d

(คลิกเพื่อซูม)

tmt_send-fanout-event-notifications_7d

คุณได้ใช้สถานการณ์สมมุติ fanout โดยใช้ Amazon SNS และ Amazon SQS แล้ว ตอนนี้คุณพร้อมที่จะใช้ Amazon SNS และ Amazon SQS ร่วมกันเพื่อส่งข้อความไปยังแอปพลิเคชันที่ต้องการการแจ้งเตือนเหตุการณ์ในทันทีหรือเพื่อบัฟเฟอร์ข้อความในคิว Amazon SQS เพื่อให้แอปพลิเคชันอื่นดำเนินการในภายหลังแล้ว

 


ตอนนี้คุณได้เรียนรู้วิธีการใช้การแจ้งเตือน fanout ด้วยข้อความโดยใช้ Amazon Simple Notification Service และ Amazon Simple Queue Service แล้ว ให้เลือกหนึ่งในตัวเลือกต่อไปนี้เพื่อเรียนรู้การส่งข้อความแบบคลาวด์บน AWS ให้ลึกซึ้งขึ้น

เรียนรู้เพิ่มเติม

ดูภาพรวมเกี่ยวกับความสามารถ องค์ประกอบ และกรณีการใช้งานหัวข้อของข้อความบน Amazon Web Services (AWS) ไปที่เว็บเพจ Amazon SNS »

ดูรายละเอียดเพิ่มเติม

สำรวจวิธีเปิดใช้งานแอปพลิเคชัน ผู้ใช้ และอุปกรณ์ เพื่อส่งและรับการแจ้งเตือนจากคลาวด์ในทันที อ่านเอกสารประกอบ »

ดูการทำงาน

นี่คือวิธีที่ลูกค้าอย่าง Capital One ใช้ Amazon SQS และ Amazon SNS ในการปลดและปรับขนาดแอปพลิเคชัน ดูการสัมนาผ่านเว็บ »

เป็นประโยชน์
ไม่