通过PHP获取Amazon EC2实例ID


Get Amazon EC2 Instance ID via PHP

我希望创建一个PHP脚本,该脚本将响应Amazon EC2实例的唯一ID。有人知道怎么做吗?

找到一个方法通过命令行:http://af-design.com/blog/2010/07/27/testing-your-aws-elastic-load-balancer/

我可以使用PHP w/CURL提交查询吗?

如果PHP脚本的全部目标是运行另一个命令,为什么不直接运行另一个命令呢?为什么要用PHP封装呢?

如果出于某种原因需要使用PHP(例如,处理实例id而不是回显它),可以使用PHP内置的HTTP功能来提高性能,而不是运行另一个进程:

#!/usr/bin/php
<?php
$instance_id = file_get_contents("http://instance-data/latest/meta-data/instance-id");
echo $instance_id, "'n";
?>

如果您使用的是Amazon Linux AMI,则可以使用shell_exec获取实例id。

$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;

如果可以通过命令行获得实例id,则可以使用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;