См. Документацию EC2 по этому вопросу .
Запустить:
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
Если вам нужен программный доступ к идентификатору экземпляра из скрипта,
die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
Пример более сложного использования (получение идентификатора экземпляра, а также зоны доступности и региона и т. Д.):
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"
Вы также можете использовать curl
вместо wget
, в зависимости от того, что установлено на вашей платформе.
169.254.169.254
в/etc/hosts
случае , что заставляет вас чувствовать себя более безопасно, вы должны ... уход.$
) найдите одну или несколько цифр, за которыми следуют одна или несколько строчных букв. Подставлять только цифрами. (Обратный слеш + Скобки расскажите СЭД помнить подстроку, которая будет вызвана с\1
.) Я нашел это немного легче читать - только обратные косые являются те , которые требуются СЭД:EC2_REGION="$(echo "$EC2_AVAIL_ZONE" | sed -e 's:\([0-9][0-9]*\)[a-z]*$:\1:')"
.http://instance-data/
вместо169.254.169.254
На Amazon Linux AMI вы можете сделать:
Или в Ubuntu и некоторых других разновидностях Linux
ec2metadata --instance-id
(эта команда может быть не установлена по умолчанию в Ubuntu, но вы можете добавить ее с помощьюsudo apt-get install cloud-utils
)Как следует из его названия, вы можете использовать команду для получения других полезных метаданных.
источник
-
послеec2
. Этоec2metadata --instance-id
ec2-metadata
, в Ubuntu она, кажется, таковаec2metadata
.На Ubuntu вы можете:
И тогда вы можете:
Вы можете получить большую часть метаданных, связанных с экземпляром, следующим образом:
источник
apt-get install
получает версию 0.11-0ubuntu1, которая не содержит эту утилиту. Он был добавлен в пакет сразу после этого .Используйте
/dynamic/instance-identity/document
URL-адрес, если вам также нужно запросить не только идентификатор вашего экземпляра.wget -q -O - http://169.254.169.254/latest/dynamic/instance-identity/document
Это позволит вам получить данные в формате JSON, такие как этот, - всего за один запрос .
источник
Для
.NET
людей:источник
в AWS Linux:
ec2-metadata --instance-id | cut -d " " -f 2
Вывод:
i-33400429
Использование в переменных:
источник
Для пользователей PowerShell:
источник
$instanceId=(Invoke-WebRequest -Uri 'http://169.254.169.254/latest/meta-data/instance-id').Content
Для Python:
который сводится к одной строке:
Вместо local_hostname вы также можете использовать public_hostname или:
источник
new AWS.MetadataService().request('instance-id',function(error,data) { myInstanceId = data; })
Для всех компьютеров ec2 идентификатор экземпляра можно найти в файле:
Вы также можете получить идентификатор экземпляра, выполнив следующую команду:
источник
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log
содержит идентификатор экземпляра, но также имеет много другого мусора.См. Этот пост - обратите внимание, что IP-адрес в указанном URL-адресе является постоянным (что меня сначала смутило), но возвращаемые данные относятся к вашему экземпляру.
источник
Для Руби:
источник
Более современное решение.
Из Amazon Linux команда ec2-metadata уже установлена.
Из терминала
Даст вам доступные варианты
вернусь
источник
ec2-metadata
с вашимиmotd
документами здесь: coderwall.com/p/hr_9pw/motds-on-amazon-amisПросто введите:
источник
Вы можете попробовать это:
источник
C # .net класс, который я написал для метаданных EC2 из HTTP API. Я буду строить его с функциональностью по мере необходимости. Вы можете работать с ним, если вам это нравится.
источник
Последний Java SDK имеет
EC2MetadataUtils
:В Java:
В Скала:
источник
Для C ++ (с использованием cURL):
источник
Просто проверьте
var/lib/cloud/instance
символическую ссылку, она должна указывать,/var/lib/cloud/instances/{instance-id}
где{instance_id}
находится ваш экземпляр экземпляра.источник
Если вы хотите получить список всех экземпляров в Python, вот код:
источник
FWIW Я написал файловую систему FUSE для обеспечения доступа к службе метаданных EC2: https://bitbucket.org/dgc/ec2mdfs . Я запускаю это на всех пользовательских AMI; это позволяет мне использовать эту идиому: cat / ec2 / meta-data / ami-id
источник
В Go вы можете использовать пакет goamz .
Вот источник GetMetaData.
источник
В вопросе, который вы упомянули в качестве пользователя root, я должен упомянуть одну вещь: идентификатор экземпляра не зависит от пользователя.
Для разработчиков Node ,
источник
Для получения метаданных экземпляра используйте
источник
Вы можете просто сделать HTTP-запрос для получения любых метаданных, передав параметры ваших метаданных.
или
Вам не нужно будет оплачивать HTTP-запросы для получения метаданных и пользовательских данных.
еще
Вы можете использовать инструмент запроса метаданных экземпляра EC2, который представляет собой простой bash-скрипт, который использует curl для запроса метаданных экземпляра EC2 из запущенного экземпляра EC2, как упомянуто в документации.
Загрузите инструмент:
Теперь запустите команду, чтобы получить необходимые данные.
См:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
https://aws.amazon.com/items/1825?externalID=1825
Рад помочь.. :)
источник
Альтернативный подход для PHP:
Это предоставит много данных об экземпляре, все красиво упаковано в массив, без внешних зависимостей. Поскольку это запрос, который никогда не был для меня неудачным или отложенным, было бы безопасно сделать это таким образом, иначе я бы пошел на curl ()
источник
Для PHP:
Редактировать за @Джон
источник
Запустите это:
Вы сможете увидеть различные типы атрибутов, которые предоставляет aws.
Используйте эту ссылку, чтобы увидеть больше
источник
Все метаданные, относящиеся к ресурсу EC2, могут быть доступны для самого экземпляра EC2 с помощью следующей выполняемой команды:
CURL:
Для вашего случая: « metadata-required » должно быть instance-id , « api-version » обычно самое последнее что можно использовать.
Дополнительное примечание: Вы также можете получить информацию, относящуюся к атрибутам ниже EC2, используя вышеуказанную команду.
ami-id, ami-launch-index, ami-manifest-path, block-device-mapping /, имя хоста, iam /, instance-action, instance-id, тип экземпляра, local-hostname, local-ipv4, mac, метрики /, сеть /, размещение /, профиль, публичное имя хоста, публичный ipv4, публичные ключи /, идентификатор резервирования, группы безопасности, услуги /,
Для получения более подробной информации перейдите по этой ссылке: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
источник
Для экземпляра Windows:
или
источник
Для упругого стебля AWS eb cli run
eb tags --list
источник