我正在寻找创建一个PHP脚本,它将回显Amazon EC2实例的唯一ID。有谁知道怎么做?
通过命令行找到一种方法:http://af-design.com/blog/2010/07/27/testing-your-aws-elastic-load-balancer/
我可以使用PHP w / CURL提交查询吗?
答案 0 :(得分:16)
如果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";
?>
答案 1 :(得分:1)
如果您可以通过命令行获取实例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;
答案 2 :(得分:0)
如果您使用的是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;