Step Functions

2 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

Tổng quan

AWS Step Functions là một dịch vụ orchestration (điều phối) serverless của AWS, giúp bạn thiết kế, triển khai, giám sát và debug các workflow nghiệp vụ phức tạp. Kết nối nhiều dịch vụ AWS (như Lambda, ECS, DynamoDB, SNS, SQS...) thông qua một luồng thực thi có trạng thái (state machine). Không cần viết code orchestration bằng tay — bạn mô hình hóa logic bằng JSON (hoặc UI), AWS lo phần hạ tầng thực thi.

  • Tính năng chính:
    • Sequence (Tuần tự)
    • Parallel (Song song)
    • Conditions (Rẽ nhánh điều kiện)
    • Timeouts (Giới hạn thời gian)
    • Error Handling (Xử lý lỗi)
      → Tạo luồng xử lý logic phức tạp, dễ maintain và dễ debug.
  • Khả năng tích hợp với các dịch vụ AWS khác như:
    • EC2, ECS
    • Server nội bộ (on-premises)
    • API Gateway
    • SQS Queue
    • Và nhiều dịch vụ khác…
  • Khả năng thêm xác thực thủ công (human approval):
    → Cho phép luồng chờ hành động từ con người (ví dụ: duyệt thủ công trước khi tiếp tục bước tiếp theo).
  • Use cases
    • Order fulfillment (Xử lý đơn hàng)
    • Data processing (Xử lý dữ liệu)
    • Web applications
    • Bất kỳ workflow nghiệp vụ nào cần orchestration

Đây là ví dụ "Hello World" cho một Step Function:

  • Màu sắc thể hiện trạng thái thực thi:
    • Xanh lá: Đã thành công (Succeeded)
    • Cam: Caught error (Lỗi đã xử lý)
    • Đỏ: Lỗi (Failed)
    • Xám: Bị hủy (Cancelled)
    • Xanh dương: Đang xử lý (In Progress)
  • Start
    → Pass: bước không thực hiện gì (no-op), chỉ để bắt đầu.
    → Hello World example?: điều kiện rẽ nhánh.
  • Nếu Yes:
    → Wait 3 sec: chờ 3 giây.
    → Chạy song song in ra:
    • Hello
    • World
      → Kết thúc bằng Hello World
  • Nếu No: đi trực tiếp tới Hello World
    → End

Ví dụ thực tế

  • Giả sử bạn cần xử lý đơn hàng:
    • Kiểm tra kho.
    • Thanh toán.
    • Gửi email xác nhận.
  • Thay vì: Viết một Lambda dài để gọi từng bước. Quản lý retry/error thủ công.
    → Bạn dùng Step Functions để định nghĩa các bước:
{
  "StartAt": "CheckInventory",
  "States": {
    "CheckInventory": { "Type": "Task", ... },
    "ChargeCustomer": { "Type": "Task", ... },
    "SendEmail": { "Type": "Task", ... }
  } 
} 
  • Workflow sẽ thực thi từng bước, xử lý lỗi, timeout, retry tự động.
Bạn thấy bài này thế nào?