Lo más cercano que tengo es usar los siguientes comandos.
Este comando logra enumerar todos los nombres de instancias.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Este comando logra enumerar todas las direcciones IP privadas, id de instancia y TODAS las etiquetas que no necesito. Solo necesito el nombre.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
No estoy seguro de por qué no puedo ejecutar comandos de esta manera:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Este comando funciona pero muestra todos los nombres de las etiquetas clave.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Valor []" como filtro para la salida de Valor de nombre de clave solo es posible después de aws-cli v1.3.0. Y estoy usando una combinación de --filter y jq para obtener la salida que quiero. El comando más cercano es aws ec2 describe-instancia --filtros Nombre = vpc-id, Valores = vpc-e2f17e8b | jq '. Reservas []. Instancias [] | {PrivateIpAddress, InstanceId, Tags} 'Solo necesito saber cómo hacer referencia a Tag Key = Name usando jq.Respuestas:
Debe escapar de las barras diagonales inversas para formatear la respuesta correctamente.
Entonces este es el comando real que deseas:
Y no lo necesitas
.Value[]
. Simplemente puede usar.Value
, y eso dará el mismo resultado.Esto es impresionante, por cierto. ¡Lo implementaré yo mismo!
CORRECCIÓN: Lo anterior no funcionará si el valor de
.Value
es "Ninguno". Esto funciona mejor:fuente
Prueba esto
fuente
|
es algún tipo de filtro?Las respuestas anteriores están bien, pero mi favorita es la misma;
de hecho, uno puede colocarlo en una lista de funciones BASH;
luego simplemente llame desde el indicador como 'awsls'
fuente
¿Algo como esto?
fuente
Agregué un filtro, por ejemplo, estado "en ejecución". Publicarlo aquí en caso de que sea útil para alguien.
Mi caso de uso es ligeramente diferente, estoy generando archivos de host Ansible, así que solo quiero el nombre privado de IP # en todos los hosts en ejecución.
fuente
Agregue esto para las personas que encontrarán esta publicación cuando busquen cómo obtener su información de instancia. Puede agregar VPC en la instrucción select para recibir eso también.
En powershell puedes usar:
Con la AWS CLI puede usar:
fuente