Запрос тегов EC2 из экземпляра - PullRequest
90 голосов
/ 07 октября 2010

Amazon недавно добавила замечательную функцию тегирования экземпляров EC2 парами ключ-значение, чтобы немного упростить управление большим количеством виртуальных машин.

Есть ли какой-то способ запрашивать эти теги так же, как некоторыедругих пользовательских данных?Например:

$ curl http://169.254.169.254/latest/meta-data/placement/availability-zone
us-east-1d

Есть ли аналогичный способ запроса тегов?

Ответы [ 12 ]

1 голос
/ 07 июля 2015

Установить AWS CLI:

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
sudo apt-get install unzip
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Получить теги для текущего экземпляра:

aws ec2 describe-tags --filters "Name=resource-id,Values=`ec2metadata --instance-id`"

Выходы:

{
    "Tags": [
        {
            "ResourceType": "instance", 
            "ResourceId": "i-6a7e559d", 
            "Value": "Webserver", 
            "Key": "Name"
        }
    ]
}

Использовать немного Perl дляизвлечь теги:

aws ec2 describe-tags --filters \
"Name=resource-id,Values=`ec2metadata --instance-id`" | \
perl -ne 'print "$1\n" if /\"Value\": \"(.*?)\"/'

Возвращает:

Webserver
0 голосов
/ 21 июня 2019

Jq + ec2metadata делает его немного лучше.Я использую cf и имею доступ к региону.В противном случае вы можете получить его в bash.

aws ec2 describe-tags --region $REGION \
--filters "Name=resource-id,Values=`ec2metadata --instance-id`" | jq --raw-output \
'.Tags[] | select(.Key=="TAG_NAME") | .Value'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...