AWS Step Functions
개발자 안내서

상태 시스템 데이터

상태 시스템 데이터는 다음과 같은 양식을 사용합니다.

  • 상태 시스템에의 초기 입력

  • 상태 간 전송되는 데이터

  • 상태 시스템의 출력

이 섹션에서는 AWS Step Functions에서 상태 시스템 데이터의 형식 지정 및 사용 방법에 대해 설명합니다.

데이터 형식

상태 시스템 데이터는 JSON 텍스트에 의해 표현되므로 JSON에서 지원하는 모든 데이터 유형을 사용하여 값을 제공할 수 있습니다.

참고

  • JSON 텍스트 형식의 수는 JavaScript 시맨틱을 따릅니다. 이러한 수는 일반적으로 배정밀도 IEEE-854 값에 적합합니다.

  • 유효한 JSON 텍스트로는 독립형, 따옴표로 구분된 문자열, 객체, 배열, 숫자, 부울 값 및 null이 있습니다.

  • 상태 출력이 다음 상태의 입력이 됩니다. 단, 입/출력 처리를 사용하면 입력 데이터의 하위 집합을 사용하여 상태를 제한할 수 있습니다.

상태 시스템 입/출력

실행을 시작할 때 StartExecution 작업에 초기 입력 데이터를 전달하거나 Step Functions 콘솔에서 초기 데이터를 전달하여 AWS Step Functions 초기 입력 데이터를 제공할 수 있습니다. 초기 데이터는 상태 시스템의 StartAt 상태에 전달됩니다. 아무 입력도 제공되지 않으면 빈 객체({})가 기본값이 됩니다.

마지막 상태(terminal)에 따라 실행의 출력이 반환됩니다. 이 출력 값은 실행 결과에 JSON 텍스트로 표시됩니다. 외부 호출자를 사용하여 실행 이력에서 실행 결과를 가져올 수 있습니다(예: DescribeExecution 작업 사용). Step Functions 콘솔에서 실행 결과를 볼 수 있습니다.

상태 입/출력

각 상태의 입력은 이전 상태의 JSON 텍스트로 구성되거나 StartAt 상태의 경우 입력이 실행으로 전환됩니다. 특정 흐름 제어 상태는 입력을 출력으로 그대로 보냅니다.

다음 예에서는 상태 시스템이 두 개의 수를 함께 추가합니다.

  1. AWS Lambda 함수를 정의합니다.

    function Add(input) { var numbers = JSON.parse(input).numbers; var total = numbers.reduce( function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); return JSON.stringify({ result: total }); }
  2. 상태 시스템을 정의합니다.

    { "Comment": "An example that adds two numbers together.", "StartAt": "Add", "Version": "1.0", "TimeoutSeconds": 10, "States": { "Add": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:Add", "End": true } } }
  3. 다음 JSON 텍스트를 사용하여 실행을 시작합니다.

    { "numbers": [3, 4] }

    Add 상태가 JSON 텍스트를 받고 이를 Lambda 함수에 전달합니다.

    Lambda 함수가 계산 결과를 상태에 반환합니다.

    상태가 출력에 다음 값을 반환합니다.

    { "result": 7 }

    [Add] 또한 상태 시스템의 마지막 상태이므로 이 값이 상태 시스템의 출력으로 반환됩니다.

    마지막 상태에서 출력이 반환되지 않는 경우 상태 시스템이 빈 객체({})를 반환합니다.

자세한 내용은 Step Functions 입/출력 처리 단원을 참조하십시오.