AWS CLI 명령 줄 :“–query”를 사용하여 여러 소스 행을 출력하는 방법 describe-instances –instance-ids i-xxxxxxxx –query ‘Reservations[*].[Instances[*].[InstanceId,ImageId]]’ 태그 라인

--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 등)를 사용하는 경우 쿼리 문자열 주위에 작은 따옴표 ( ‘) 대신 큰 따옴표 ( “)를 사용해야합니다. 그렇지 않으면 콘솔에서 쿼리의 경로를 인쇄하기 만합니다. 오류를 생성하십시오.