【问题标题】:How to get AWS EC2 Instance id in PHP如何在 PHP 中获取 AWS EC2 实例 ID
【发布时间】:2018-06-10 13:40:42
【问题描述】:

我在 AWS EC2 中有 2 个实例,我想通过实例 ID 检查请求。

require_once 'vendor/autoload.php';

use Aws\Ec2\Ec2Client;
use Aws\Rds\RdsClient;
$instance_id = $ec2->describeInstances();

if($instance_id == 'i0-jkedsf54325123' || $instance_id == 'i0-jkedsf543251321'){
    echo "request instance id is allow";
}else{ 
    echo "request not allow";
}

需要检查哪个实例请求即将到来。

【问题讨论】:

  • 您能否澄清一下“通过实例 ID 检查请求”和“检查即将到来的实例请求”的含义?你是说你的 PHP 代码在一个实例上运行并且你想知道那个实例的 ID? i0-jkedsf54325123 是什么?这看起来不像普通的实例 ID,它应该以 i- 开头。
  • @JohnRotenstein :- 我有 elb(负载平衡)和 3 个实例。我想识别请求。如果我调用我的 Web URL :-www.abc.com 比从 1 调用,如果从 2 实例调用比得到“i-0156485DF13”,我得到实例 ID“i-0156485DF12”。 - 你是说你的 PHP 代码在一个实例上运行并且你想知道那个实例的 ID? - 是的
  • @JohnRotenstein :- "应该以 i- 开头" 是的,在我的问题中,我举了一个简单的例子。

标签: php amazon-web-services amazon-ec2 aws-sdk


【解决方案1】:

如果您想查找运行某些代码的实例 ID,可以访问 Instance Metadata

要从 PHP 中执行此操作,请使用 (from Get Amazon AWS Instance ID (PHP / wget) · GitHub):

<?php
//---------------------------------------------------------------------------------
// You can get the metadata for an AWS instance by loading the following URL
// Note: This URL must be loaded from an AWS instance
//
//---------------------------------------------------------------------------------
// URL:
//      http://169.254.169.254/latest/meta-data/instance-id
//
//---------------------------------------------------------------------------------
// wget:
//      wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
//
//---------------------------------------------------------------------------------

echo @file_get_contents("http://instance-data/latest/meta-data/instance-id");

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 2020-12-09
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多