EC2 etiketlerini yerel bir dosyaya indirmek için bu komut dosyasını bulut başlatma kullanıcı verilerinize ekleyebilirsiniz:
#!/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
Sisteminizde kurulu AWS CLI araçlarına ihtiyacınız var: Bunları packages
komut dosyasından önce bir bulut yapılandırma dosyasında bir bölümle yükleyebilir, bunları zaten içeren bir AMI kullanabilir apt
veya yum
komut dosyasının başına bir veya komutu ekleyebilirsiniz .
EC2 etiketlerine erişmek için örneğinizin IAM rolünde buna benzer bir politikaya ihtiyacınız vardır:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Bulut sunucusunun EC2 etiketleri şu biçimde sunulacaktır /etc/ec2-tags
:
FOO="Bar"
Name="EC2 tags with cloud-init"
Dosyayı olduğu gibi bir kabuk betiğine dahil edebilirsiniz . /etc/ec2-tags
, örneğin:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Etiketler, örnek başlatma sırasında indirilir, bu nedenle sonraki değişiklikleri yansıtmazlar.
Komut dosyası ve IAM politikası, itaifrenkel'in cevabına dayanmaktadır.