Intereting Posts
Получите разное время до конца текущего дня Как запустить php-файл в качестве задания cron в cPanel в службе Bigrock Shared Hosting? PHP ajax database: как передать две переменные и получить данные из них в разных вариантах? Отправка SMS-команд AT на 3G-модем с использованием PHP Как получить доступ к списку учетных записей электронной почты с помощью API cPanel? Унифицированные логины Joomla для форума и пользовательский php-сайт Рассчитать количество оставшихся дней Главное меню WordPress – Скрыть ссылку «Главная» только на главной странице cakePHP 3.0 загрузка изображений Как я должен повторять строковую переменную PHP, которая содержит специальные символы? настройка laravel на IIS7 Когда использовать модули в Zend Framework? Symfony 2 Forward Request, проходящий по параметрам GET / POST убедитесь, что результат метода выборки PDO «false» – это ошибка или пустой результат WordPress, PHP, ошибка кодирования URL

Как программно получить публичные dns экземпляра?

Есть ли способ получить общедоступный DNS экземпляра EC2, используя PHP amazon SDK (или инструменты командной строки API Amazon)?

Я пробовал этот PHP-код (среди прочего), но он не будет работать:

require_once '/full/path/sdk.class.php'; $ec2 = new AmazonEC2(); $response = $ec2->describe_regions(); print_r($response); 

а также

 require_once '/full/path/sdk.class.php'; $ec2 = new AmazonEC2(); $response = $ec2->describe_instances(array( 'Filter' => array( array('Name' => 'availability-zone', 'Value' => 'eu-west-1') ) )); print_r($response); 

но я не могу видеть публичные DNS в ответе

Solutions Collecting From Web of "Как программно получить публичные dns экземпляра?"

Очевидно, вы хотели бы получить экземпляр Amazon EC2 в регионе eu-west-1 (что не является правильным значением для «зоны доступности-доступности»). Тем не менее, вы не указываете ни один регион, а все сервисы по умолчанию для региона США и Востока , см. Ответ команды AWS на связанный с ним вопрос. ОписанияInstances () только дают мне примеры в us-east :

Хотя вы не можете захватить данные для всех регионов за один вызов, вы можете вызвать метод describe_instances () в каждом регионе.

 $ec2 = new AmazonEC2(); $ec2->set_region(AmazonEC2::REGION_US_W1); // US-West 1 $response = $ec2->describe_instances(); 

Использование этого кода с соответствующей константой для выбранного вами региона (например, AmazonEC2::REGION_EU_W1 ) даст желаемый результат.

Если вы запускаете это в самом экземпляре, вы можете удалить конечную точку внутренней метаданных AWS:

 $hostname = file_get_contents('http://169.254.169.254/latest/meta-data/public-hostname'); 

http://169.254.169.254/latest/meta-data/ предоставит вам список различных доступных вам метаданных. В данный момент:

 ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname instance-action instance-id instance-type kernel-id local-hostname local-ipv4 mac metrics/ network/ placement/ profile public-hostname public-ipv4 public-keys/ reservation-id security-groups