Cómo agregar una etiqueta al iniciar una instancia ec2 usando aws clis

Cómo agregar una etiqueta al iniciar una instancia ec2 usando aws clis

Estoy intentando crear una instancia en ec2 usando CLI. ¿Existe alguna forma de especificar etiquetas para la instancia cuando se usa CLI para crear instancias?

aws ec2 run-instances --image-id $ami_id --key-name $deployment_key_name \
--region $region --security-groups default --instance-type m4.large \
--user-data file://./yaml/master.yaml

Respuesta1

A partir del 28 de marzo de 2017, puede especificar etiquetas para instancias (y volúmenes adjuntos) como parte del run-instancescomando.

Ejemplo:

aws ec2 run-instances --image-id ami-abc12345 --count 1 \
--instance-type t2.micro --key-name MyKeyPair \
--subnet-id subnet-6e7f829e \
--tag-specifications 'ResourceType=instance,Tags=[{Key=webserver,Value=production}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]' 

Publicación del blog del anuncio: https://aws.amazon.com/blogs/aws/new-tag-ec2-instances-ebs-volumes-on-creation/

Documentación adicional (ver ejemplo 4): http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_CLI

Respuesta2

Utilizar elaws ec2 crear etiquetascomando luego para agregar etiquetas por ID de instancia.

Respuesta3

Aquí está mi sugerencia y una forma de verificarla:

Estoy usando SSO con el nombre de perfil ATeam. Deberá actualizar esto en consecuencia en sus archivos de configuración y credenciales.

Crea la instancia:

aws ec2 run-instances \
 --image-id ami-0578f2b35d0328762 \
 --instance-type t2.micro \
 --security-group-ids sg-065d064965244f9a0 \
 --subnet-id subnet-00d93c6b00c0a6ccb \
 --key-name devass \
 --user-data file://ec2-user-data-web-app.md \
 --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=pub_1},{Key=Group,Value=devass},{Key=LifeCycle,Value=development}]' \
 --count 1 \
 --profile ATeam

Verifique la información importante de la instancia. Lo siento, la consulta debe colocarse en una línea porque no he descubierto una manera de dividirla en varias líneas.

  aws ec2 describe-instances  --query "Reservations[*].Instances[*].{Instance:InstanceId,PublicIP:PublicIpAddress,Name:Tags[?Key=='Name']|[0].Value,Group:Tags[?Key=='Group']|[0].Value,LifeCycle:Tags[?Key=='LifeCycle']|[0].Value,Status:State.Name}" \
  --profile ATeam \
  --output table

Resultado: Salida de consola para describir instancias

información relacionada