2017-05-23 3 views
1

JMESPath은 나를 미치게합니다. 나는 독서 문서화 1 시간 후 함께했다 무엇 security group == "SG-DEV"AWS EC2는 2 개의 필터를 기반으로 IP와 이름을 얻습니다.

과 기계의 IP와 이름을 얻으려면 :

aws ec2 describe-instances --query "Reservations[].Instances[].[Tags[?Key=='Name'].Value[] && SecurityGroups[?GroupName == 'SG-DEV'].PrivateIpAddress]" 

그것은 단지 컴퓨터 이름을 생산뿐만 아니라 SG-DEV 기계 및 IP 주소가 아닙니다. 내가 뭘 잘못하고 있니?

답변

1

당신은 잘못하고있다. filters을 사용하여 SG-DEV 보안 그룹으로 인스턴스를 나열한 다음 출력에서 ​​개인 IP와 인스턴스 이름 만 추출하십시오. 인스턴스 이름을 얻는 것은 약간 까다 롭습니다. 의 예제를 확인하십시오 Controlling Command Output from the AWS Command Line Interface

다음은을 요구하고 무엇을 반환해야 다음.?.

aws ec2 describe-instances --filter "Name=instance.group-name,Values=SG-DEV" --query "Reservations[].Instances[].[PrivateIpAddress, Tags[?Key=='Name'].Value]" --output text 
0

개인 IP 주소가 다른 네임 스페이스 아래에 있으면 쿼리와 필터 스위치를 조합하여 사용해야합니다.

network-interface.addresses.private-ip-addressprivate-ip-address

변경 Values=SG-DEV

aws ec2 describe-instances --filter "Name=instance.group-name,Values=default" --query "Reservations[].Instances[*].PrivateIpAddress[]" 

의 값이 필터는 또한 태그를 필터링 할 수 있습니다이 목록

[ 
    "10.0.1.202" 
] 

을 반환

,536,

태그 : key = - 자원에 할당 된 태그의 키/값 조합입니다. 필터 이름에 태그의 키를 지정하고 필터 값에 태그 값을 지정하십시오. 예를 들어 Purpose = X 태그의 경우 태그를 지정하십시오. 필터 ​​이름은 Purpose이고 필터 값은 X입니다.

tag-key - 자원에 할당 된 태그의 키. 이 필터는 태그 - 값 필터와 독립적입니다. 예를 들어, "tag-key = Purpose"필터와 "tag-value = X"필터를 모두 사용하는 경우 태그 키 목적 (태그의 값에 관계없이)과 태그 값 X (태그의 키에 관계없이) 목적이 X 인 자원 만 나열하려면 tag : key = 필터를 참조하십시오.

태그 값 - 자원에 할당 된 태그의 값입니다. 이 필터는 태그 키 필터와 독립적입니다.

http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html

+0

나는 또한'와 컴퓨터 이름이 필요합니다 [태그 [키 == '이름'] 값 [] '어떻게 추가 할 수 있습니까? – Moshe

+0

필터는 태그를 필터링 할 수도 있습니다. – strongjz