#php #curl #get #amazon-ec2
#php #curl #получить #amazon-ec2
Вопрос:
Я хочу создать PHP-скрипт, который будет отображать уникальный идентификатор экземпляра Amazon EC2. Кто-нибудь знает, как это сделать?
Нашел способ через командную строку: http://af-design.com/blog/2010/07/27/testing-your-aws-elastic-load-balancer /
Могу ли я просто использовать PHP w / CURL для отправки запроса?
Ответ №1:
Если вся цель вашего PHP-скрипта — запустить другую команду, почему бы просто не запустить другую команду напрямую? Зачем оборачивать его в PHP?
Если вам по какой-либо причине необходимо использовать PHP (например, чтобы что-то сделать с идентификатором экземпляра, кроме как повторить его, вы можете повысить производительность, используя встроенную HTTP-функцию PHP вместо запуска другого процесса:
#!/usr/bin/php
<?php
$instance_id = file_get_contents("http://instance-data/latest/meta-data/instance-id");
echo $instance_id, "n";
?>
Комментарии:
1. Возможно ли получить идентификатор экземпляра на основе домена?
Ответ №2:
Вы можете использовать shell_exec для получения идентификатора экземпляра, если вы используете Amazon Linux AMI.
$instance_id = shell_exec('ec2-metadata --instance-id 2> /dev/null | cut -d " " -f 2');
// if its not set make it 0
if (empty($instance_id)) {
$instance_id = 0;
}
echo $instance_id;
Ответ №3:
Если вы можете получить идентификатор экземпляра через командную строку, вы можете получить результаты последнего в PHP, используя функцию exec PHP. Когда вы получите результат, просто повторите его.
$instance_id = exec([your command here]);
echo $instance_id;
Кроме того, после прочтения сообщения, на которое вы ссылались, вы также можете сделать это таким образом:
$instance_id = file_get_contents(
"http://169.254.169.254/latest/meta-data/instance-id");
echo $instance_id;