So fügen Sie beim Starten einer EC2-Instanz mit AWS CLI ein Tag hinzu

So fügen Sie beim Starten einer EC2-Instanz mit AWS CLI ein Tag hinzu

Ich versuche, mithilfe der CLI eine Instanz in ec2 zu erstellen. Gibt es eine Möglichkeit, Tags für die Instanz anzugeben, wenn ich die CLI zum Erstellen von Instanzen verwende?

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

Antwort1

Ab dem 28. März 2017 können Sie als Teil des run-instancesBefehls Tags für Instanzen (und angeschlossene Volumes) angeben.

Beispiel:

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}]' 

Ankündigungs-Blogbeitrag: https://aws.amazon.com/blogs/aws/new-tag-ec2-instances-ebs-volumes-on-creation/

Zusätzliche Dokumentation (siehe Beispiel 4): http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_CLI

Antwort2

Verwenden Sie dieaws ec2 - Tags erstellenBefehl anschließend, um Tags nach Instanz-ID hinzuzufügen.

Antwort3

Hier ist mein Vorschlag und eine Möglichkeit, ihn zu überprüfen:

Ich verwende SSO mit dem Profilnamen ATeam. Sie müssen dies in Ihren Konfigurations- und Anmeldeinformationendateien entsprechend aktualisieren.

Erstellen Sie die Instanz:

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

Überprüfen Sie die wichtigen Instanzinformationen. Leider muss die Abfrage in einer Zeile stehen, da ich keine Möglichkeit gefunden habe, sie auf mehrere Zeilen aufzuteilen.

  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

Ergebnis: Konsolenausgabe für „describe-instances“

verwandte Informationen