AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

JSONata를 사용한 AWS Step Functions 배열 평탄화 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

AWS Step Functions를 사용하는 개발자, 특히 배열 처리 및 JSONata 활용에 관심 있는 중급 이상 개발자

핵심 요약

  • JSONata의 . 표현식을 사용하여 배열 평탄화 가능 (예: states.result.)
  • 빈 배열 처리를 위해 $exists() 함수와 삼항 조건식 사용 (예: $exists(states.result.) ? states.result. : [])
  • ?? 또는 || 연산자는 현재 JSONata에서 지원되지 않음 (AWS 문서 참조 필요)

섹션별 세부 요약

1. JSONPath 기반 기존 방법

  • AWS Step Functions의 ResultSelector에서 [][] 표현식 사용
  • 예: "ResultSelector":{"flattenArray.$":"$[][]"}
  • JSONPath는 배열 평탄화에 적합하지만, JSONata로 전환 시 호환성 문제 발생

2. JSONata의 배열 평탄화

  • JSONata에서 . 표현식 사용 (예: states.result.)
  • 빈 배열일 경우 .* 표현식은 빈 결과 반환
  • 배열 강제 형변환([] 사용)은 이 경우에 무효

3. 빈 배열 처리 방법

  • $exists() 함수로 존재 여부 확인 (예: $exists(states.result.*))
  • 삼항 조건식으로 기본값 설정 (예: $exists(states.result.) ? states.result. : [])
  • ?? 또는 || 연산자 사용 시 현재 미지원 (AWS 문서 개선 요청 필요)

4. 실무적 고려사항

  • JSONata의 .* 표현식은 성능 개선이 필요할 수 있음
  • 빈 배열 처리 로직은 모든 JSONata 스크립트에 포함 권장
  • AWS 문서에서 JSONata 기능 설명이 부족한 것으로 확인

결론

  • 배열 평탄화 시 $exists()와 삼항 조건식을 사용해 빈 배열 처리
  • ?? 연산자 사용 시 AWS 문서 확인 필요
  • JSONata의 .* 표현식은 적극적으로 활용되나, 빈 배열 처리에 주의해야 함