Есть ли способ поиска области экземпляра изнутри экземпляра?
Я ищу что-то похожее на метод нахождения идентификатора экземпляра .
Этот 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 на основе комментариев
sed
Есть еще один способ добиться этого:
REGION=`curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'` echo $REGION us-east-1
Если вы в порядке с jq, вы можете выполнить следующее:
jq
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq .region -r
Я думаю, это самый чистый способ.
ec2-metadata --availability-zone | sed 's/.$//'
Вы можете использовать ec2-метаданные:
ec2-metadata -z | grep -Po "(us|sa|eu|ap)-(north|south|central)?(east|west)?-[0-9]+"
Если вы хотите избежать регулярного выражения, вот одна строка, которую вы можете сделать с 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']"
Самый простой, который я нашел до сих пор
curl -s 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/.$//'
очень простой вкладыш
export AVAILABILITY_ZONE=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone` export REGION_ID=${AVAILABILITY_ZONE:0:${#AVAILABILITY_ZONE} - 1}
Если у вас установлена jq , вы также можете пойти по этому пути (возможно, самый «изящный» метод) следующим образом:
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -c -r .region
Это просто возвращает необработанное значение "region" без какой-либо симпатичной печати или другого форматирования. Ссылка: Форум AWS
Получить регион из зоны доступности, убрать последнюю букву этого.