Search

[AWS CLI] Query 괄호[ ] 위치에 따른 차이

PublishDate
2021/09/15
Category
AWS
AWS CLI
Tag & Keyword
Query
JMESPath

미묘하게 복잡한 Query의 세계...

AWS CLI에는 --profile, --region 과 같은 전역 옵션들이 있는데 나는 그 중에 --profile, --query 옵션을 자주 활용한다.
--query는 AWS CLI 전범위를 지원하는 파라미터로 원하는 조건에 맞춰 값을 쿼리한다.

Case

살펴볼 쿼리는 다음과 같다.
둘다 Output 중에서 InstanceId 라는 속성의 Value만 나타내기 위한 쿼리이다.
1.
'Reservations[].Instances[][InstanceId]'
2.
'Reservations[].Instances[][].InstanceId'
두 명령어를 순서대로 입력했을 때 출력되는 Output
1번 쿼리와 2번 쿼리를 비교해보자
쿼리된 결과에 Instance Id 만 출력되는 것은 동일하다.
다른점은 다음과 같다.
1번 쿼리는 여러가지 속성 중 InstanceId만 필터해서 출력하고 (배열 내부에서 InstanceId가 배열[] 로 분리됨)
2번 쿼리는 출력된 목록에서 InstanceId를 쿼리한다. (EC2 ID가 하나의 배열에 출력됨)
전자는 기본 Output Format의 변화없이 필터링만 하는 개념이다.
후자는 기본 Output 중에서 원하는 값만 뽑아서 결과물을 재생성 하는 개념이다. 내가 원하는 값만 모아서 새로운 결과물을 만들었기 때문에 Output Format이 변경된다.