기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
상태 시스템 구조
다음 필드가 들어 있는 구조를 나타내는 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
상태가 모두 될 수 있습니다.