Anda dapat menambahkan skrip ini ke data pengguna cloud-init Anda untuk mengunduh tag EC2 ke file lokal:
#!/bin/sh
INSTANCE_ID=`wget -qO- http://instance-data/latest/meta-data/instance-id`
REGION=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed 's/.$//'`
aws ec2 describe-tags --region $REGION --filter "Name=resource-id,Values=$INSTANCE_ID" --output=text | sed -r 's/TAGS\t(.*)\t.*\t.*\t(.*)/\1="\2"/' > /etc/ec2-tags
Anda memerlukan alat AWS CLI yang diinstal pada sistem Anda: Anda dapat menginstalnya dengan packagesbagian di file konfigurasi cloud sebelum skrip, menggunakan AMI yang sudah menyertakannya, atau menambahkan perintah aptatau yumdi awal skrip.
Untuk mengakses tag EC2, Anda memerlukan kebijakan seperti ini dalam peran IAM instans Anda:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Tag EC2 instans akan tersedia dalam /etc/ec2-tagsformat ini:
FOO="Bar"
Name="EC2 tags with cloud-init"
Anda dapat memasukkan file apa adanya dalam skrip shell menggunakan . /etc/ec2-tags, misalnya:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Tag didownload selama inisialisasi instance, jadi tag tidak akan mencerminkan perubahan selanjutnya.
Skrip dan kebijakan IAM didasarkan pada jawaban itaifrenkel.