--query
여러 줄에서 파생 된 하나의 레코드를 생성 하기 위해 aws-cli 버전 1.7.8을 사용 하고 있습니다. 이 경우에서 특정 정보를 얻으려고합니다 describe-instances
.
이 describe-instances
명령 RESERVATIONS
에서 INSTANCES
,, 및 을 참조하는 행 / 섹션을 얻습니다 TAGS
.
새로운 AWS CLI 명령을 간단히 실행하여 세 줄 모두에서 개별적으로 정보를 얻을 수 있습니다.
예약 라인 :
aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].ReservationId'
인스턴스 라인 :
aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].[Instances[*].[InstanceId,ImageId]]'
태그 라인 :
이름
aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[].Instances[].[Tags[?Key==]]'
이 3 개의 명령을 실행하고 결과를 연결하여 1 개의 레코드를 구성 할 수 있습니다.
누구든지 3 개의 별개의 명령 대신 이것을 하나의 명령으로 실행할 수있는 방법이 있는지 알고 있습니까?
PIPE 및 다른 형식의 구문을 시도했지만 아직 좋은 해결책을 찾을 수 없습니다.
단일 명령에서이 3 개의 명령과 동등한 출력을 얻을 수 있습니까?
답변
aws ec2 describe-instances --instance-id i-77777777 \
--query 'Reservations[*].Instances[*].[InstanceId,ImageId,Tags[*]]' \
--output text
이 명령은 인스턴스 ID, AMI ID, 키 및 값 태그를 인쇄합니다. 여기에서 더 많은 예제를 볼 수 있습니다 :
AWS Command Line Interface에서 명령 출력 제어
답변
Windows (cmd.exe, cmder.exe 등)를 사용하는 경우 쿼리 문자열 주위에 작은 따옴표 ( ‘) 대신 큰 따옴표 ( “)를 사용해야합니다. 그렇지 않으면 콘솔에서 쿼리의 경로를 인쇄하기 만합니다. 오류를 생성하십시오.