Как получить идентификатор экземпляра из экземпляра ec2? - PullRequest
342 голосов
/ 09 марта 2009

Как я могу узнать instance id экземпляра ec2 из экземпляра ec2?

Ответы [ 31 ]

1 голос
/ 24 декабря 2013

В Go вы можете использовать пакет goamz .

import (
    "github.com/mitchellh/goamz/aws"
    "log"
)

func getId() (id string) {
    idBytes, err := aws.GetMetaData("instance-id")
    if err != nil {
        log.Fatalf("Error getting instance-id: %v.", err)
    }

    id = string(idBytes)

    return id
}

Вот источник GetMetaData.

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

Для упругого стебля AWS eb cli run eb tags --list

0 голосов
/ 29 мая 2019

Для экземпляра Windows:

(wget http://169.254.169.254/latest/meta-data/instance-id).Content

или

(ConvertFrom-Json (wget http://169.254.169.254/latest/dynamic/instance-identity/document).Content).instanceId
0 голосов
/ 31 января 2019

Все метаданные, связанные с ресурсом EC2, могут быть доступны для самого экземпляра EC2 с помощью следующей выполняемой команды:

CURL:

http://169.254.169.254/<api-version>/meta-data/<metadata-requested>

Для вашего случая: " запрошенные метаданные " должны быть идентификатор экземпляра , " api-версия " обычно последняя это можно использовать.

Дополнительное примечание: Вы также можете получить информацию, относящуюся к атрибутам ниже EC2, используя вышеуказанную команду.

Ами-идентификатор, Ами-запуск-индекс, AMI-манифест-путь, Блок-устройства отображения /, имя хоста, я/, Экземпляр действия, Идентификатор экземпляра, экземпляр типа, локальный хост, местный ipv4, макинтош, Метрики /, сеть /, размещение /, профиль, общественно-имя хоста, общественно-ipv4, общественные клавиши /, резервирование идентификатор, безопасность-группа, услуги /

Для получения более подробной информации перейдите по этой ссылке: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

0 голосов
/ 04 января 2019

Вы также можете установить awscli и использовать его для получения всей необходимой информации:

AWS_DEFAULT_REGION=your-region aws ec2 describe-instances

Вы получите много выходных данных, поэтому убедитесь, что ваш идефикатор, такой как ip, использует grep и напечатает еще несколько строк:

AWS_DEFAULT_REGION=your-region aws ec2 describe-instances | grep your-ip -A 10 | grep InstanceId
0 голосов
/ 28 декабря 2018

Для получения метаданных экземпляра используйте

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
0 голосов
/ 18 декабря 2018

Запустите это:

curl http://169.254.169.254/latest/meta-data/

Вы сможете увидеть различные типы атрибутов, предоставляемых aws.

Используйте эту ссылку, чтобы увидеть больше

0 голосов
/ 06 декабря 2017

Альтернативный подход для PHP:

$instance = json_decode(file_get_contents('http://169.254.169.254/latest/dynamic/instance-identity/document'),true);
$id = $instance['instanceId'];
print_r($instance);

Это предоставит много данных об экземпляре, все красиво упаковано в массив, без внешних зависимостей. Поскольку это запрос, который никогда не был для меня неудачным или отложенным, было бы безопасно сделать это таким образом, иначе я бы выбрал curl ()

0 голосов
/ 16 июля 2017

В вопросе, который вы упомянули в качестве пользователя root, я должен упомянуть одну вещь: идентификатор экземпляра не зависит от пользователя.

Для Узел разработчиков,

var meta  = new AWS.MetadataService();

meta.request("/latest/meta-data/instance-id", function(err, data){
    console.log(data);
});
0 голосов
/ 25 января 2017

Для PHP:

$instance = json_decode(file_get_contents('http://169.254.169.254/latest/dynamic/instance-identity/document));
$id = $instance['instanceId'];

Редактировать за @ Джон

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