기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
상태 관리 및 데이터 변환
변수를 사용하여 상태 간에 데이터 전달과 JSONata를 사용하여 데이터 변환에 대해 알아봅니다.
Amazon States Language에서 경로는 JSON 텍스트 내 구성 요소를 식별하는 데 사용할 수 있는 $
로 시작하는 문자열입니다. 경로QueryLanguage
는 JsonPathInputPath
, ResultPath
및 OutputPath
의 값을 지정할 때 입력 하위 집합에 액세스하기 위한 경로를 지정할 수 있습니다
필드 이름에 JsonPath ABNFmember-name-shorthand
정의에 포함되지 않은 문자가 포함된 경우에는 대괄호 표기법을 사용해야 합니다. 따라서 구두점(_
제외)과 같은 특수 문자를 인코딩하려면 대괄호 표기법을 사용해야 합니다. 예: $.abc.['def ghi']
.
참조 경로
참조 경로는 JSON 구조에서 단일 노드만 식별할 수 있는 방식으로 구문이 제한되는 경로입니다.
-
객체 필드는 점(
.
) 및 대괄호([ ]
) 표기를 통해서만 액세스할 수 있습니다. -
length()
가 지원되지 않은 등의 함수 -
기호가 아닌 어휘 연산자(예:
subsetof
)는 지원되지 않습니다. -
정규 표현식을 기준으로 또는 JSON 구조의 다른 값을 참조하는 필터링은 지원되지 않습니다.
-
@
,,
,:
,?
연산자는 지원되지 않습니다.
예를 들어 상태 입력 데이터에 다음과 같은 값이 포함된 경우:
{
"foo": 123,
"bar": ["a", "b", "c"],
"car": {
"cdr": true
}
}
다음과 같은 참조 경로가 반환합니다.
$.foo => 123
$.bar => ["a", "b", "c"]
$.car.cdr => true
특정 상태에서는 경로 및 참조 경로를 사용하여 상태 머신의 흐름을 제어하거나 상태 설정 또는 옵션을 구성합니다. 자세한 내용은 데이터 흐름 시뮬레이터를 사용한 워크플로 입력 및 출력 경로 처리 모델링
배열의 배열 평면화
상태 시스템의 병렬 워크플로 상태 또는 Map 워크플로 상태 상태에서 배열의 배열을 반환하는 경우 ResultSelector 필드를 사용하여 배열을 평면 배열로 변환할 수 있습니다. Parallel 또는 Map 상태 정의 내에 이 필드를 포함하여 이러한 상태의 결과를 조작할 수 있습니다.
배열을 평면화하려면 다음 예제와 같이 [*]
ResultSelector
필드에 구문을 사용합니다.
"ResultSelector": {
"flattenArray.$": "$[*][*]"
}
배열을 평면화하는 방법을 보여주는 예제는 다음 자습서의 3단계를 참조하세요.