ทำไมต้อง SWF
Amazon Simple Workflow Service (Amazon SWF) ช่วยให้นักพัฒนาสามารถสร้าง รัน และปรับขนาดงานในพื้นหลังซึ่งมีขั้นตอนที่ดำเนินควบคู่กันหรือตามลำดับ อาจมองได้ว่า Amazon SWF เป็นหน่วยติดตามสถานะและหน่วยประสานงานซึ่งมีการจัดกาเต็มรูปแบบในระบบคลาวด์
หากขั้นตอนในแอปของคุณกินเวลานานกว่า 500 มิลลิวินาทีกว่าจะเสร็จ ทำให้คุณจำเป็นต้องติดตามสถานะการประมวลผล และจำเป็นต้องกู้คืนหรือลองใหม่หากงานล้มเหลว Amazon SWF สามารถช่วยคุณได้ในเรื่องนี้
หากคุณกำลังมองหาบริการโฟลว์กระบวนการที่แสดงผลด้วยภาพแบบการเขียนโค้ดน้อยที่สุดเพื่อใช้ในการประสานบริการของ AWS, ทำให้กระบวนการทางธุรกิจเป็นอัตโนมัติ หรือสร้างแอปพลิเคชันแบบไม่ต้องมีเซิร์ฟเวอร์ เรียนรู้เพิ่มเติมเกี่ยวกับ AWS Step Functions
ประโยชน์
รายละเอียดผลิตภัณฑ์ Amazon SWF
การใช้ Amazon SWF เพื่อจัดการเวิร์กโฟลว์ภายในแอปพลิเคชันของคุณเป็นเรื่องง่าย
ฟังก์ชันการทำงานของ Amazon SWF
Amazon SWF ทำหน้าที่เป็นฮับการประสานงานสำหรับส่วนประกอบต่าง ๆ ทั้งหมดของแอปพลิเคชันของคุณ:
- การรักษาสถานะแอปพลิเคชัน
- ติดตามการดำเนินการเวิร์กโฟลว์และสร้างข้อมูลบันทึกความคืบหน้า
- การจัดวางและการจัดส่งงาน
- การควบคุมงานใดที่โฮสต์แอปพลิเคชันแต่ละรายการของคุณจะได้รับมอบหมายให้ดำเนินการ
เพื่อใช้ Amazon SWF คุณเพียงแค่:
- ใช้คอนโซลการจัดการของ AWS หรือ Amazon SWF API เพื่อระบุชื่อของเวิร์กโฟลว์
- ใช้ Amazon SWF API เพื่อ “เริ่ม” เวิร์กโฟลว์ใหม่ ซึ่งส่งผลให้ลำดับงานเวิร์กโฟลว์เฉพาะที่เรียกว่า “การดำเนินการเวิร์กโฟลว์” ถูกกระตุ้นให้ดำเนินการ
- ใช้ Amazon SWF API จากเครื่องของโปรแกรมทำงานของคุณ (“โปรแกรมทำงาน” เป็นส่วนประกอบของแอปพลิเคชันของคุณที่จัดการกับงานเฉพาะ) เพื่อกำหนดลำดับงาน จัดการขั้นตอนตามเงื่อนไข และดำเนินการลูปสำหรับการดำเนินการเวิร์กโฟลว์
- ใช้ Amazon SWF API จากเครื่องของโปรแกรมทำงานของคุณเพื่อขอและดำเนินการงานเวิร์กโฟลว์ในระบบคลาวด์หรือในองค์กร
- ตรวจสอบสถานะและความคืบหน้าของการดำเนินการเวิร์กโฟลว์และงานที่เกี่ยวข้องในคอนโซลการจัดการของ AWS
คำแนะนำตัวอย่างใน คอนโซลการจัดการของ AWS จะนำคุณผ่านขั้นตอนในการลงทะเบียนและเรียกใช้แอปพลิเคชันตัวอย่าง โปรดดูเอกสารประกอบสำหรับข้อมูลเพิ่มเติม
คำอธิบายอย่างละเอียด
Amazon SWF เป็นบริการเวิร์กโฟลว์ที่มีการจัดการอย่างเต็มรูปแบบสำหรับการสร้างแอปพลิเคชันที่ปรับขนาดได้และยืดหยุ่น Amazon SWF ให้บริการการเรียกใช้ API ที่ง่ายดายซึ่งสามารถดำเนินการจากโคดที่เขียนในภาษาใดก็ได้และทำงานบนอินสแตนซ์ EC2 ของคุณหรือเครื่องใดก็ได้ในโลกที่สามารถเข้าถึงอินเทอร์เน็ตได้
Amazon SWF ทำหน้าที่เป็นฮับการประสานงานที่โฮสต์แอปพลิเคชันของคุณโต้ตอบด้วย คุณสร้างเวิร์กโฟลว์ที่ต้องการด้วยงานที่เกี่ยวข้องและตรรกะตามเงื่อนไขที่คุณต้องการนำไปใช้และจัดเก็บไว้ด้วย Amazon SWF แต่ละครั้งที่ดำเนินการเวิร์กโฟลว์ จะถือว่าเป็นการดำเนินการเวิร์กโฟลว์ที่แยกจากกัน คุณตั้งโปรแกรมส่วนประกอบของแอปพลิเคชันของคุณเพื่อขอให้งานต่าง ๆ ดำเนินการในการดำเนินการเวิร์กโฟลว์ของคุณ และ Amazon SWF จะประสานงานงานให้เสร็จสิ้นตามลำดับที่คุณระบุบนโฮสต์ของคุณ (ไม่ว่าโฮสต์จะอยู่ในคลาวด์หรือในองค์กรก็ตาม) แอปพลิเคชันจะสื่อสารกับ Amazon SWF โดยใช้ API เพื่อบันทึกความสำเร็จหรือความล้มเหลวของงาน จากนั้น Amazon SWF จะดำเนินการต่อลำดับงานโดยการกำหนดงานเวิร์กโฟลว์ถัดไปให้กับโฮสต์แอปพลิเคชันหรือโดยเรียกใช้งานที่ล้มเหลวอีกครั้งขึ้นอยู่กับตรรกะทางธุรกิจของคุณ
เข้าสู่ระบบคอนโซลการจัดการของ AWS เพื่อเริ่มการดำเนินการเวิร์กโฟลว์ของ Amazon SWF หรือคุณสามารถเริ่มดำเนินการเวิร์กโฟลว์ผ่าน Amazon SWF API ของเรา Amazon SWF ใช้อินเทอร์เฟซบริการในรูปแบบเว็บที่เรียบง่ายซึ่งใช้งานง่ายและยืดหยุ่นสูง:
- StartWorkflowExecution: เริ่มลำดับของงานเวิร์กโฟลว์และทำให้งานแรกพร้อมใช้งานกับโฮสต์แอปพลิเคชันใดตัวหนึ่ง
- DescribeWorkflowExecution: ให้สถานะของการดำเนินการและงานเวิร์กโฟลว์ของคุณ
- PollForActivityTask: โฮสต์แอปพลิเคชันของคุณ (ในระบบคลาวด์หรือในองค์กร) ขอและดำเนินการงานเวิร์กโฟลว์ในลูปต่อเนื่อง
- RespondActivityTaskCompleted: โฮสต์แอปพลิเคชันที่บอกกับ Amazon SWF ว่าทำงานเสร็จเรียบร้อยแล้ว จากนั้น Amazon SWF จะดำเนินการเวิร์กโฟลว์ต่อไปโดยทำให้งานถัดไปพร้อมใช้งานกับโฮสต์แอปพลิเคชัน
- TerminateWorkflowExecution: หยุดการขับเคลื่อนการดำเนินการเวิร์กโฟลว์ที่เฉพาะเจาะจงไปขั้นตอนข้างหน้า Amazon SWF จะไม่มอบหมายงานใด ๆ ในการดำเนินการเวิร์กโฟลว์เฉพาะนี้ให้กับโฮสต์แอปพลิเคชัน
วัตถุประสงค์การใช้งานและข้อจำกัด
การใช้บริการนี้ของคุณเป็นไปตามข้อตกลงของลูกค้า Amazon Web Services
กรณีใช้งาน
AWS Flow Framework
AWS Flow Framework เป็นคอลเลกชันของไลบรารีที่ใช้งานได้สะดวกสบายที่ทำให้สร้างแอปพลิเคชันได้เร็วและง่ายขึ้นด้วย Amazon Simple Workflow
วิธีทำงาน
AWS Flow Framework มีโมเดลการเขียนโปรแกรมที่ตรงไปตรงไปตรงมาซึ่งทำให้สามารถสร้างแอปพลิเคชันที่ทำงานบนเครื่องหลายเครื่องได้ง่าย ด้วยเฟรมเวิร์กนี้ คุณสามารถสร้างงาน ประสานงานงาน และแสดงให้เห็นว่างานเหล่านี้ขึ้นอยู่กันอย่างไรได้อย่างรวดเร็ว เช่นเดียวกับที่คุณทำในโปรแกรมทั่วไป ตัวอย่างเช่น คุณสามารถเรียกใช้วิธีการในแอปพลิเคชันบนคอมพิวเตอร์ "ระยะไกล" เพียงแค่เรียกใช้วิธีการในตรรกะแอปพลิเคชันของคุณที่โฮสต์อยู่บนคอมพิวเตอร์ "ท้องถิ่น" ที่แยกจากกัน AWS Flow Framework ช่วยจัดการกับการโต้ตอบไปมาที่ซับซ้อนซึ่งจำเป็นในการดำเนินการวิธีการระยะไกล และส่งผลลัพธ์กลับไปยังแอปพลิเคชันภายในท้องถิ่นโดยใช้ข้อมูลที่เก็บไว้โดยบริการ Amazon Simple Workflow เอาต์พุตของวิธีการที่ดำเนินการใด ๆ สามารถใช้เพื่อเชื่อมต่อส่วนต่าง ๆ ที่แยกจากกันของตรรกะของคุณที่ขึ้นอยู่ซึ่งกันและกันได้ นี้ช่วยให้คุณใช้รูปแบบไวยากรณ์ตรงไปตรงมาเพื่อแสดงความสัมพันธ์ระหว่างวิธีการด้วยแนวทาง "บล็อกและรอการเรียกกลับ" ที่เรียบง่าย เฟรมเวิร์กนี้ยังช่วยให้คุณจัดการความล้มเหลวบนเครื่องระยะไกลได้ราวกับว่าเป็นข้อผิดพลาดในท้องถิ่น และให้วิธีง่าย ๆ ในการกำหนดว่าคุณต้องการลองใช้วิธีการสำคัญในแอปพลิเคชันของคุณอีกครั้งอย่างไร หากเกิดความล้มเหลว
- พบได้ใน AWS SDK สำหรับ Java
- ดู การสัมมนาผ่านเว็บ สำหรับเวอร์ชัน Java
- อ่านคู่มือนักพัฒนา
- ดู การอ้างอิง API
หมายเหตุ
AWS Flow Framework สำหรับ Ruby ไม่ได้อยู่ภายใต้การพัฒนาอย่างต่อเนื่องอีกต่อไป แม้ว่าโค้ดที่มีอยู่จะยังคงทำงานได้ตลอดเวลา แต่จะไม่มีฟีเจอร์หรือเวอร์ชันใหม่ ซอร์สโค้ดของ Flow Framework สำหรับ Ruby จะยังคงมีอยู่ใน คลังเก็บ AWS SWF GitHub หากคุณกำลังพัฒนาและเปลี่ยนแปลงแอปพลิเคชัน Simple Workflow ที่ใช้ Ruby ของคุณ มีตัวเลือกที่คุณอาจต้องการพิจารณา รวมถึงการย้ายไปยัง AWS Step Functions หรือใช้ API ของ Simple Workflow แบบเนทีฟ สำหรับรายละเอียด โปรดดู คู่มือ AWS Simple Workflow
การใช้ AWS Flow Framework คุณเขียนโค้ดง่าย ๆ และปล่อยให้วัตถุและคลาสที่สร้างไว้ล่วงหน้าของเฟรมเวิร์กจัดการรายละเอียดของ API ของ Amazon Simple Workflow AWS Flow Framework ดูแลการสร้างและดำเนินการตามขั้นตอนของแอปพลิเคชันของคุณ ติดตามความคืบหน้า ให้คุณกำหนดกฎการลองใหม่เมื่อขั้นตอนล้มเหลว และอื่น ๆ อีกมากมาย ในขณะเดียวกัน Amazon Simple Workflow Service จะรักษาสถานะการดำเนินการของแอปพลิเคชันของคุณ มอบงานให้กับโปรแกรมทำงานที่มีอยู่ และเก็บประวัติการตรวจสอบของงานทั้งหมดของคุณ
AWS Flow Framework เป็นโอเพ่นซอร์ส Java และพัฒนาและจัดการโดย AWS คุณสามารถใช้ลิงก์ด้านล่างเพื่อรับไลบรารี ซอร์สโค้ด เอกสารประกอบ ตัวอย่าง และอื่น ๆ