Мне нужен уникальный идентификатор для каждого экземпляра EC2 моей группы масштабирования на AWS для префикса для uniqid()
.
Могу ли я использовать $_SERVER['SERVER_ADDR']
?
Мне нужен уникальный идентификатор для каждого экземпляра EC2 моей группы масштабирования на AWS для префикса для uniqid()
.
Могу ли я использовать $_SERVER['SERVER_ADDR']
?
Следующий код может принести идентификатор экземпляра экземпляра ec2:
#!/usr/bin/php
<?php
$instance_id = file_get_contents("http://instance-data/latest/meta-data/instance-id");
echo $instance_id;
?>
Экземпляр ID из метаданных ec2 хороший ответ, но припрятать свое значение в окружающей среде, как кажется более чистым раствором.
Везде, где вы устанавливаете переменные среды в своей настройке - в сценарии запуска для самого веб-сервера (например, не универсально, будет /etc/init.d/apache2
), выберите значение и сохраните его в среде.
export EC2_INSTANCE_ID=$(ec2metadata --instance-id)
$_ENV["EC2_INSTANCE_ID"]
должен тогда содержать значение, намного меньше, чем утомительное кэширование его в файл, и не подлежит ограничению скорости (которая описана в налагаются, но без конкретных порогов упоминаются).
Обратите внимание, что следующие три примера для извлечения идентификатора экземпляра функционально эквивалентен:
ec2metadata --instance-id
curl http://instance-data/latest/meta-data/instance-id
curl http://169.254.169.254/latest/meta-data/instance-id
Мне очень нравится это решение. Я никогда не использовал переменные окружающей среды, но я обязательно попробую это. –
Возможно, вам это станет полезно, если вы еще не нашли его сейчас: http://php.net/manual/en/reserved.variables.environment.php. (PHP - это не моя специальность, поэтому мне пришлось самому это посмотреть). По-видимому, есть также 'getenv()'. –
Я пытался использовать переменные среды, но кажется, что это невозможно, см. Мой пост: http://stackoverflow.com/questions/41331993/retrieving-an-environment-variable-in-php/41332070#41332070 –
Я думал о метаданных, но не эта скорость ограничена? –
«Мы обрабатываем запросы к службе метаданных экземпляра для каждого экземпляра, и мы устанавливаем ограничения на количество одновременных подключений от экземпляра к службе метаданных экземпляра». Могу ли я как-то записать идентификатор при запуске экземпляра в php-файл, который я реализую в своем скрипте? –
Я действительно новичок в этом сервисе amazon, но вот мое предложение. Как создать файл данных или базу данных и добавить к нему этот идентификатор, если он еще не добавлен? А затем извлекать его из источника данных, когда это необходимо? – Manikiran