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.Odpowiedzi:
Musisz uciec z ukośników odwrotnych, aby poprawnie sformatować odpowiedź.
Oto właściwe polecenie:
I nie potrzebujesz
.Value[]
. Możesz po prostu użyć.Value
, a to da ten sam wynik.To jest niesamowite, przy okazji. Będę to sam realizować!
KOREKCJA: Powyższe nie zadziała, jeśli wartość
.Value
„Brak”. Działa to lepiej:źródło
Spróbuj tego
źródło
|
jest jakiś filtr?Powyższe odpowiedzi są OK, ale moim ulubionym z nich jest;
w rzeczywistości można go umieścić na liście listy funkcji BASH;
następnie po prostu zadzwoń z wiersza polecenia jako „awsls”
źródło
Coś takiego?
źródło
Dodałem filtr, na przykład stan „działa”. Opublikowanie go tutaj, na wypadek, gdyby było to pomocne dla każdego.
Mój przypadek użycia jest nieco inny, generuję pliki hosta Ansible, więc chcę tylko prywatną nazwę IP # na wszystkich działających hostach.
źródło
Dodanie tego dla osób, które znajdą ten post podczas wyszukiwania informacji o instancji. Możesz dodać VPC w instrukcji select, aby również to otrzymać.
W PowerShell możesz użyć:
Dzięki AWS CLI możesz używać:
źródło