Tạo Workflow

Tạo workflow cho Caculator State Machine

  1. Truy cập AWS Step Function Console.
  • Click Get started. Create Workflows For Calculator State Machine
  1. Trong trang Review Hello World example, click Next Create Workflows For Calculator State Machine
  2. Trong trang Specify details
  • Trong mục State machine name, nhập BasicCalculator
  • Trong phần Permission, chọn Choose an existing role
  • Tại mục Existing roles, chọn idevelop-step-functions-execution-roles Create Workflows For Calculator State Machine
  • Kéo màn hình xuống dưới, click Create state machine.
  1. Click Cancel Create Workflows For Calculator State Machine
  2. Click Edit Create Workflows For Calculator State Machine
  3. Sao chép nội dung dưới đây vào mục Defintion
{
  "Comment": "Simple Calculator Step Functions Example",
  "StartAt": "state.start.operatorSelector",
  "States": {
    "state.start.operatorSelector": {
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.operator",
          "StringEquals": "add",
          "Next": "state.process.operator.add"
        },
        {
          "Variable": "$.operator",
          "StringEquals": "subtract",
          "Next": "state.process.operator.subtract"
        },
        {
          "Variable": "$.operator",
          "StringEquals": "multiply",
          "Next": "state.process.operator.multiply"
        },
        {
          "Variable": "$.operator",
          "StringEquals": "divide",
          "Next": "state.process.operator.divide"
        }
      ],
      "Default": "state.process.operator.unknown"
    },
    "state.process.operator.add": {
      "Type": "Pass",
      "Comment": "Performs an addition on the operands provided",
      "Next": "state.process.displayResult"
    },
    "state.process.operator.subtract": {
      "Type": "Pass",
      "Comment": "Performs an subtraction on the operands provided",
      "Next": "state.process.displayResult"
    },
    "state.process.operator.multiply": {
      "Type": "Pass",
      "Comment": "Performs an multiplication on the operands provided",
      "Next": "state.process.displayResult"
    },
    "state.process.operator.divide": {
      "Type": "Pass",
      "Comment": "Performs an division on the operands provided",
      "Next": "state.process.displayResult"
    },
    "state.process.operator.unknown": {
      "Type": "Fail",
      "Error": "UNKNOWN_OPERATOR",
      "Cause" : "The operator provided is not supported"
    },
    "state.process.displayResult": {
      "Type": "Pass",
      "Next": "state.process.complete"
    },
    "state.process.complete": {
      "Type": "Pass",
      "End": true
    }
  }
}
  • Click biểu tượng refresh để state machine hiển thị dưới dạng đồ họa
  • Click Save Create Workflows For Calculator State Machine

    Hãy dành một chút thời gian để xem lại định nghĩa state machine và biểu diễn đồ họa. Workflow hiện tại đưa ra quyết định dựa trên dữ liệu đầu vào, nhưng không thực hiện bất kỳ tính toán nào - tất cả các trạng thái đều là “Pass” hay còn gọi là no-op trong thuật ngữ State Language.

  1. Bạn sẽ thấy cảnh báo liên quan tới IAM role. Click Save anyway Create Workflows For Calculator State Machine
  2. Click Start Excution Create Workflows For Calculator State Machine
  3. Nhập đoạn JSON dưới đây vào mục Input
{
  "operator" : "add",
  "operands" : [
      1,
      2
  ]
}
  • Click Start execution Create Workflows For Calculator State Machine
  1. Bạn sẽ nhận được kết quả Create Workflows For Calculator State Machine
  2. Hãy thử các toán tử khác như divide, multiply, subtract. Qua quan sát, ta có thể thấy rằng mặc dù đường dẫn là chính xác nhưng không có thao tác nào diễn ra. Vì vậy, hãy cùng tạo một microservice để làm điều này.