Найти регион в экземпляре EC2 - PullRequest
112 голосов
/ 22 ноября 2010

Есть ли способ поиска области экземпляра изнутри экземпляра?

Я ищу что-то похожее на метод нахождения идентификатора экземпляра .

Ответы [ 23 ]

125 голосов
/ 16 марта 2012

Этот URL (http://169.254.169.254/latest/dynamic/instance-identity/document), похоже, больше не работает. Я получаю 404, когда пытался его использовать. У меня есть следующий код, который, кажется, работает:

EC2_AVAIL_ZONE=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed 's/[a-z]$//'`"

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Улучшено sed на основе комментариев

74 голосов
/ 13 февраля 2012

Есть еще один способ добиться этого:

REGION=`curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'`

echo $REGION

us-east-1
31 голосов
/ 15 октября 2015

Если вы в порядке с jq, вы можете выполнить следующее:

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq .region -r

Я думаю, это самый чистый способ.

25 голосов
/ 16 июня 2016
ec2-metadata --availability-zone | sed 's/.$//'
18 голосов
/ 02 сентября 2012

Вы можете использовать ec2-метаданные:

ec2-metadata -z | grep -Po "(us|sa|eu|ap)-(north|south|central)?(east|west)?-[0-9]+"
16 голосов
/ 26 июля 2016

Если вы хотите избежать регулярного выражения, вот одна строка, которую вы можете сделать с Python:

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | python -c "import json,sys; print json.loads(sys.stdin.read())['region']"
15 голосов
/ 25 мая 2016

Самый простой, который я нашел до сих пор

 curl -s 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/.$//'
13 голосов
/ 13 марта 2013

очень простой вкладыш

export AVAILABILITY_ZONE=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone`
export REGION_ID=${AVAILABILITY_ZONE:0:${#AVAILABILITY_ZONE} - 1}
7 голосов
/ 29 сентября 2018

Если у вас установлена ​​ jq , вы также можете пойти по этому пути (возможно, самый «изящный» метод) следующим образом:

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -c -r .region

Это просто возвращает необработанное значение "region" без какой-либо симпатичной печати или другого форматирования. Ссылка: Форум AWS

6 голосов
/ 03 марта 2017

Получить регион из зоны доступности, убрать последнюю букву этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...