Step Functions에서 입력 및 출력 처리
변수 및 JSONata를 사용하여 상태 관리
Step Functions는 최근에 상태를 관리하고 데이터를 트랜스포밍하기 위해 변수와 JSONata를 추가했습니다.
블로그 게시물 AWS Step Functions의 변수 및 JSONata로 개발자 경험 간소화
Step Functions 실행에서 JSON 텍스트를 입력으로 수신할 때 해당 데이터를 워크플로의 첫 번째 상태에 입력으로 전달합니다.
JSONata를 사용하면 $states.input에서 상태 입력을 검색할 수 있습니다. 상태 머신 실행은 컨텍스트 객체에서 초기 입력 데이터도 제공합니다. $states.context.Execution.Input에서 워크플로의 어떤 지점에서든 원래 상태 머신 입력을 검색할 수 있습니다.
상태가 종료되면 상태 머신의 바로 다음 상태로 출력을 사용할 수 있습니다. 상태 출력을 수정하지 않는 한 상태 입력은 기본적으로 상태 출력으로 전달됩니다. 이후 단계에서 필요할 수 있는 데이터의 경우 변수에 저장하는 것이 좋습니다. 자세한 내용은 변수를 사용하여 상태 간에 데이터 전달 섹션을 참조하세요.
QueryLanguage 권장 사항
새 상태 머신의 경우 JSONata 쿼리 언어를 사용하는 것이 좋습니다. 쿼리 언어를 지정하지 않는 상태 머신에서 상태 머신은 역호환성을 위해 기본적으로 JSONPath로 설정됩니다. 상태 머신 또는 개별 상태에 JSONata를 사용하려면 옵트인해야 합니다.
JSONata를 사용하여 입력 및 출력 처리
JSONata 표현식을 사용하면 데이터를 선택하고 트랜스포밍할 수 있습니다. Arguments 필드에서 작업에 전송된 데이터를 사용자 지정할 수 있습니다. 결과는 Output 필드에서 사용자 지정 상태 출력으로 트랜스포밍할 수 있습니다. Assign 필드의 변수에 데이터를 저장할 수도 있습니다. 자세한 내용은 JSONata를 사용하여 데이터 트랜스포밍 섹션을 참조하세요.
다음 다이어그램은 JSON 정보가 JSONata 태스크 상태를 통과하는 방법을 보여줍니다.
JSONPath를 사용하여 입력 및 출력 처리
상태 관리 및 데이터 트랜스포밍
변수를 사용하여 상태 간 데이터 전달과 JSONata를 사용하여 데이터 트랜스포밍에 대해 알아봅니다.
JSONPath를 사용하는 상태 머신의 경우 InputPath, Parameters, ResultSelector, ResultPath 및 OutputPath 필드는 상태에서 상태로의 데이터 흐름을 제어합니다. 각 JSONPath 필드는 워크플로의 각 상태를 이동할 때 JSON을 조작합니다.
JSONPath 필드는 경로를 사용하여 입력 또는 결과에서 JSON 부분을 선택할 수 있습니다. 경로는 JSON 텍스트 내의 노드를 식별하는 $로 시작하는 문자열입니다. Step Functions 경로는 JsonPath
다음 다이어그램은 JSON 정보가 JSONPath 태스크 상태를 통과하는 방법을 보여줍니다. InputPath는 JSON 입력의 일부를 선택하여 Task 상태의 작업(예: AWS Lambda 함수)에 전달합니다. Parameters 필드에서 작업에 전송되는 데이터를 조정할 수 있습니다. 그런 다음 ResultSelector를 사용하면 이월할 작업 결과의 일부를 선택할 수 있습니다. 그런 다음 ResultPath는 출력에 전달할 상태 입력 및 작업 결과의 조합을 선택합니다. OutputPath는 JSON 출력을 필터링하여 출력에 전달되는 정보를 추가로 제한할 수 있습니다.