Ви можете додати цей сценарій до своїх хмарних даних користувача для завантаження тегів EC2 у локальний файл:
#!/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
Вам потрібні інструменти AWS CLI, встановлені у вашій системі: ви можете встановити їх з packages
розділом у файлі хмарного конфігурації перед сценарієм, використовувати AMI, який вже включає їх, або додати команду apt
або yum
команду на початку сценарію.
Для доступу до тегів EC2 вам потрібна політика, подібна цій, у ролі IAM вашого екземпляра:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Теги EC2 примірника доступні /etc/ec2-tags
у такому форматі:
FOO="Bar"
Name="EC2 tags with cloud-init"
Ви можете включити файл як є у сценарій оболонки, використовуючи . /etc/ec2-tags
, наприклад:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Теги завантажуються під час ініціалізації екземпляра, тому вони не відображатимуть подальші зміни.
Сценарій та політика IAM засновані на відповіді itaifrenkel.