0Pricing
Serverless Backend with AWS Lambda & API Gateway · บทเรียน

การประสานกระบวนการทำงานที่ซับซ้อน

สร้างกระบวนการทำงานไร้เซิร์ฟเวอร์ที่ซับซ้อน ซึ่งประกอบด้วยตรรกะแบบมีเงื่อนไข การทำงานแบบขนาน และการจัดการข้อผิดพลาดด้วย Step Functions

การประสานกระบวนการทำงานที่ซับซ้อน เป็นบทเรียน Serverless Backend with AWS Lambda & API Gateway ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Serverless Backend with AWS Lambda & API Gateway และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Serverless Backend with AWS Lambda & API Gateway มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

Orchestrating Complex Workflows

Welcome! In this lesson, we'll dive into building sophisticated serverless workflows with AWS Step Functions.

We'll explore how to add decision-making, run tasks concurrently, and make your workflows resilient to errors.

Decision Making with Choice

The Choice state is your workflow's "if/else" statement. It allows your state machine to make decisions based on the input it receives.

  • Each choice rule has a condition (e.g., input value equals "X").
  • If a condition is met, the workflow transitions to a specified state.
  • A default state handles cases where no conditions match.

Choice State Example

Here's how a Choice state looks in your Step Functions definition. It checks an orderStatus field to decide the next step.

{  "StartAt": "CheckOrderStatus",  "States": {    "CheckOrderStatus": {      "Type": "Choice",      "Choices": [        {          "Variable": "$.orderStatus",          "StringEquals": "PENDING",          "Next": "ProcessPendingOrder"        },        {          "Variable": "$.orderStatus",          "StringEquals": "SHIPPED",          "Next": "NotifyShipping"        }      ],      "Default": "HandleUnknownStatus"    },    "ProcessPendingOrder": {      "Type": "Task",      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:processPending",      "End": true    },    "NotifyShipping": {      "Type": "Task",      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:notifyShipping",      "End": true    },    "HandleUnknownStatus": {      "Type": "Fail",      "Cause": "Unknown order status",      "Error": "InvalidOrderStatus"    }  }}

Running Tasks in Parallel

The Parallel state allows you to execute multiple branches of your workflow concurrently. This is great for tasks that don't depend on each other and can run at the same time.

  • Each branch runs independently.
  • The Parallel state waits for all branches to complete.
  • Outputs from all branches are combined into an array.

Parallel State Example

This Parallel state simultaneously processes an order and updates inventory, then combines their results.

{  "StartAt": "ProcessOrderAndInventory",  "States": {    "ProcessOrderAndInventory": {      "Type": "Parallel",      "Branches": [        {          "StartAt": "ProcessOrder",          "States": {            "ProcessOrder": {              "Type": "Task",              "Resource": "arn:aws:lambda:us-east-1:123456789012:function:processOrder",              "End": true            }          }        },        {          "StartAt": "UpdateInventory",          "States": {            "UpdateInventory": {              "Type": "Task",              "Resource": "arn:aws:lambda:us-east-1:123456789012:function:updateInventory",              "End": true            }          }        }      ],      "Next": "CombineResults"    },    "CombineResults": {      "Type": "Pass",      "End": true    }  }}

Handling Errors Gracefully

Things can go wrong! Step Functions provides robust error handling with the Catch field. You can specify what errors to catch and which state to transition to when an error occurs.

  • Errors are identified by their type (e.g., States.TaskFailed).
  • You can catch specific errors or a generic States.ALL.
  • The ResultPath specifies where the error output is placed.

Catch State Example

Here, if the ProcessPayment task fails, it's caught and the workflow moves to the RefundOrder state.

{  "StartAt": "ProcessPayment",  "States": {    "ProcessPayment": {      "Type": "Task",      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:processPayment",      "Catch": [        {          "ErrorEquals": [ "States.TaskFailed", "PaymentFailure" ],          "Next": "RefundOrder",          "ResultPath": "$.errorInfo"        }      ],      "Next": "CompleteOrder"    },    "RefundOrder": {      "Type": "Task",      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:refundOrder",      "End": true    },    "CompleteOrder": {      "Type": "Pass",      "End": true    }  }}

Retrying Failed Tasks

For transient errors (like network timeouts), it's often better to retry the task a few times before failing. The Retry field lets you define retry policies.

  • Specify which errors to retry.
  • Configure IntervalSeconds, MaxAttempts, and BackoffRate.
  • Exponential backoff (BackoffRate > 1) is highly recommended.

Retry State Example

This task will retry up to 3 times with exponential backoff if a Timeout or NetworkError occurs.

{  "StartAt": "CallExternalService",  "States": {    "CallExternalService": {      "Type": "Task",      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:callExternalService",      "Retry": [        {          "ErrorEquals": [ "States.Timeout", "NetworkError" ],          "IntervalSeconds": 2,          "MaxAttempts": 3,          "BackoffRate": 1.5        }      ],      "End": true    }  }}

Orchestrating It All

The real power of Step Functions comes from combining these states. You can build highly sophisticated workflows by nesting Parallel states within Choices, adding Retries to Tasks, and Catching errors at various levels.

This allows you to model almost any business process, making your serverless applications robust and adaptable.

Workflow Logic Check

Consider a workflow that needs to:

  1. Check if a user is premium.
  2. If premium, send a personalized email AND update their loyalty points simultaneously.
  3. If not premium, send a standard email.
  4. Handle any email sending failures by logging them without stopping the workflow.

Which Step Functions states would be essential to implement this logic?

Recap: Complex Workflows

You've mastered advanced Step Functions concepts!

  • We used Choice states for conditional logic.
  • We leveraged Parallel states for concurrent execution.
  • We implemented robust error handling with Catch blocks.
  • And we learned about Retry policies for transient failures.

These tools allow you to build incredibly powerful and resilient event-driven serverless applications!

คำถามที่พบบ่อย

บทเรียน “การประสานกระบวนการทำงานที่ซับซ้อน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การประสานกระบวนการทำงานที่ซับซ้อน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Serverless Backend with AWS Lambda & API Gateway ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Serverless Backend with AWS Lambda & API Gateway มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การประสานกระบวนการทำงานที่ซับซ้อน”

สร้างกระบวนการทำงานไร้เซิร์ฟเวอร์ที่ซับซ้อน ซึ่งประกอบด้วยตรรกะแบบมีเงื่อนไข การทำงานแบบขนาน และการจัดการข้อผิดพลาดด้วย Step Functions คุณปฏิบัติ Serverless Backend with AWS Lambda & API Gateway ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Serverless Backend with AWS Lambda & API Gateway หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Serverless Backend with AWS Lambda & API Gateway บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การประสานกระบวนการทำงานที่ซับซ้อน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Serverless Backend with AWS Lambda & API Gateway นี้ได้ไหม

ได้ บทเรียน Serverless Backend with AWS Lambda & API Gateway ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่ AWS Step Functions
  2. การสร้างเครื่องจักรสถานะ
  3. การประสานกระบวนการทำงานที่ซับซ้อน
  4. การจัดการข้อผิดพลาดและการลองใหม่ในเครื่องสถานะ
← กลับไปที่ Serverless Backend with AWS Lambda & API Gateway