상태 시스템 구조 - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

상태 시스템 구조

다음 필드가 들어 있는 구조를 나타내는 JSON 텍스트를 사용하여 정의된 상태 시스템입니다.

Comment(선택 사항)

육안으로 읽을 수 있는 머신 상태 설명입니다.

StartAt(필수)

상태 객체 중 하나의 이름과 대/소문자를 포함하여 정확하게 일치해야 하는 문자열입니다.

TimeoutSeconds(선택 사항)

상태 시스템이 시작할 수 있는 실행의 최대 시간(초)입니다. 지정된 시간보다 오래 실행될 경우 실행이 실패하고 States.Timeout 오류 이름이 표시됩니다.

Version(선택 사항)

상태 시스템에 사용되는 Amazon States Language의 버전입니다(기본값: "1.0").

States(필수)

쉼표로 구분된 상태 집합을 포함하는 객체입니다.

States 필드에는 다음과 같은 상태가 포함됩니다.

{ "State1" : { }, "State2" : { }, ... }

상태 시스템은 상태 시스템에 들어 있는 상태 및 상태 간 관계에 의해 정의됩니다.

다음은 예입니다.

{ "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World!", "End": true } } }

상태 시스템 실행이 시작되면 StartAt 필드("HelloWorld")에서 참조하는 상태로 시스템이 시작됩니다. 이 상태에 "End": true 필드가 있으면 실행이 중지되고 결과가 반환됩니다. 그렇지 않으면 시스템에서 "Next": 필드를 찾고 해당 상태로 다음 작업을 계속합니다. 터미널 상태("Type": "Succeed", "Type": "Fail" 또는 "End": true인 상태)에 도달하거나 런타임 오류가 발생할 때까지 이 프로세스가 반복됩니다.

상태 시스템 내 상태에는 다음 규칙이 적용됩니다.

  • 상태는 닫힌 블록 내에서 어느 순서로든 발생할 수 있지만 상태가 나열된 순서가 실행 순서에 영향을 미치지 않습니다. 상태의 내용에 따라 이 순서가 결정됩니다.

  • 하나의 상태 시스템 내에서 하나의 상태만 start 상태로 지정되어 있을 수 있습니다. 이 상태는 최상위 구조의 StartAt 필드 값에 따라 지정됩니다. 이 상태는 실행이 시작될 때 제일 먼저 실행되는 상태입니다.

  • End 필드가 true인 상태는 end(또는 terminal) 상태로 간주됩니다. 상태 시스템 논리에 따라(예: 상태 시스템에 실행 브랜치가 여러 개 있는 경우) end 상태가 하나 이상 있을 수도 있습니다.

  • 상태 시스템이 하나의 상태로만 구성되어 있는 경우 start 상태 및 end 상태가 모두 될 수 있습니다.