【问题标题】:Get Amazon EC2 Instance ID via PHP通过 PHP 获取 Amazon EC2 实例 ID
【发布时间】:2011-10-02 01:36:21
【问题描述】:

我正在寻找创建一个 PHP 脚本来回显 Amazon EC2 实例的唯一 ID。有人知道怎么做吗?

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

我可以只使用带有 CURL 的 PHP 来提交查询吗?

【问题讨论】:

    标签: php curl get amazon-ec2


    【解决方案1】:

    如果您的 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";
    ?>
    

    【讨论】:

    • 是否可以根据域获取实例ID?
    【解决方案2】:

    如果您使用的是 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;
    

    【讨论】:

      【解决方案3】:

      如果您可以通过命令行获取实例 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;
      

      【讨论】:

        猜你喜欢
        • 2012-05-27
        • 2018-03-13
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 2013-02-20
        • 2010-10-12
        • 1970-01-01
        • 2013-01-06
        相关资源
        最近更新 更多