Najbliższe, jakie mam, to użycie następujących poleceń.
To polecenie zarządza listą wszystkich nazw instancji.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
To polecenie zarządza listą wszystkich prywatnych adresów IP, identyfikatora instancji i WSZYSTKICH tagów, których nie potrzebuję. Potrzebuję tylko imienia.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Nie jestem pewien, dlaczego nie mogę wykonać polecenia w ten sposób:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
To polecenie działa, ale pokazuje wszystkie nazwy kluczy tagów.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Value []” jako filtru dla danych wyjściowych Key Name Value jest możliwe tylko po aws-cli v1.3.0. I używam kombinacji --filter i jq, aby uzyskać pożądany wynik. Najbliższym poleceniem jest aws ec2 description-instances - filtry Nazwa = vpc-id, Wartości = vpc-e2f17e8b | jq '.Reservations []. Instances [] | {PrivateIpAddress, InstanceId, Tags} „Muszę tylko wiedzieć, jak odwoływać się do Tag Tag = Name za pomocą jq.