AWS Step Functions
Điều phối quy trình
Mô tả quy trình nhiều bước (gọi Lambda, chờ, rẽ nhánh, thử lại, chạy song song) dưới dạng máy trạng thái có sơ đồ trực quan.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Không
- Serverless
- Có trong đềSAA · DVA · SOA
Hình dungNhư người quản đốc cầm checklist: xong bước này mới giao bước kế, lỗi thì làm lại.
Step Functions đứng ở đâu trong hệ thống?
Gọi tới Step Functions
Step Functions gọi tới
Một ví dụ thật, từng bước
- Quy trình xử lý đơn hàng gồm: kiểm tra tồn kho, trừ tiền thẻ, gửi email; bước nào lỗi thì phải hoàn tác.
- Bạn vẽ workflow trong Step Functions: mỗi bước gọi một Lambda hoặc gọi thẳng dịch vụ AWS.
- Bước trừ tiền gặp lỗi mạng thì tự thử lại 3 lần, giãn cách tăng dần; vẫn lỗi thì chuyển sang bước hoàn tiền.
- Đơn lớn cần quản lý duyệt: workflow dừng chờ tới khi có người bấm duyệt, có thể chờ nhiều ngày.
- Mỗi lần chạy đều hiện trực quan từng bước đã qua, bước nào lỗi, nên gỡ lỗi nhanh hơn hẳn.
Khi nào nên dùng
✓ Nên dùng khi
Quy trình nhiều bước: xử lý đơn hàng, pipeline dữ liệu, có bước chờ người duyệt.
✗ Không nên dùng khi
Chỉ một bước đơn giản → gọi Lambda trực tiếp.
Ví dụ hay gặp
- Quy trình đặt hàng nhiều bước có thử lại
- Pipeline xử lý dữ liệu/ML
- Quy trình có bước chờ người duyệt
- Điều phối nhiều Lambda thay vì gọi lồng nhau
Step Functions, Lambda hay EventBridge?
| Vai trò | Điều phối nhiều bước | Chạy một đoạn code | Định tuyến sự kiện |
|---|---|---|---|
| Thời gian chạy | Tới 1 năm (Standard) | Tối đa 15 phút | Không áp dụng |
| Xử lý lỗi | Retry, catch, rẽ nhánh có sẵn | Tự viết trong code | Thử gửi lại, dead-letter queue |
| Hợp nhất với | Quy trình nhiều bước, chờ duyệt | Một tác vụ ngắn | Phản ứng với sự kiện |
Tốn bao nhiêu tiền?
- Cách tính: Standard: ~$0,025/1.000 lần chuyển trạng thái. Express: theo số lần chạy (~$1/1 triệu) + thời gian và bộ nhớ.
- Miễn phí: Always Free (Standard): 4.000 lần chuyển trạng thái/tháng.
Dùng Standard cho luồng tần suất rất cao (Express rẻ hơn nhiều); vòng Map có quá nhiều bước.
Điều phối nhiều Lambda, cần retry, rẽ nhánh, chờ người duyệt → Step Functions. Xử lý song song hàng nghìn file trong S3 → Map state chế độ Distributed. Quy trình dài, chạy đúng một lần → Standard; số lượng lớn, ngắn → Express.
Thử sức với câu hỏi thi thật
1A company recently migrated to the AWS Cloud. The company wants a serverless solution for large-scale parallel on-demand processing of a semistructured dataset. The data consists of logs, media files, sales transactions, and IoT sensor data that is stored in Amazon S3. The company wants the solution to process thousands of items in the dataset in parallel. Which solution will meet these requirements with the MOST operational efficiency?
- AUse the AWS Step Functions Map state in Inline mode to process the data in parallel.
- BUse the AWS Step Functions Map state in Distributed mode to process the data in parallel.
- CUse AWS Glue to process the data in parallel.
- DUse several AWS Lambda functions to process the data in parallel.
Xem đáp án
Đáp án đúng: B
Map state ở chế độ Distributed của Step Functions chạy hàng nghìn workflow con song song, đọc thẳng dữ liệu trong S3. Chế độ Inline giới hạn số lượng chạy song song thấp hơn nhiều.
Câu hỏi thường gặp
Standard workflow khác Express workflow thế nào?
Standard chạy được tới một năm, mỗi bước thực hiện đúng một lần, có lịch sử chi tiết, hợp với quy trình dài như duyệt đơn. Express chạy tối đa 5 phút, thông lượng rất cao, tính tiền theo số lần chạy và thời gian, hợp với xử lý sự kiện số lượng lớn.
Step Functions tính tiền thế nào?
Standard tính theo số lần chuyển trạng thái (state transition). Express tính theo số lần chạy, thời gian chạy và bộ nhớ dùng. Workflow có nhiều bước nhỏ lặp lại nên cân nhắc Express.
Đề thi AWS hay hỏi gì về Step Functions?
Điều phối nhiều Lambda và dịch vụ AWS, cấu hình retry và catch xử lý lỗi, trạng thái chờ người duyệt (callback), chọn Standard hay Express, và gọi trực tiếp dịch vụ AWS mà không cần viết Lambda trung gian.