简体   繁体   中英

Get Amazon EC2 Instance ID via PHP

I'm looking to create a PHP script that will echo the unique ID of an Amazon EC2 instance. Anyone know how to do this?

Found a way via command line: http://af-design.com/blog/2010/07/27/testing-your-aws-elastic-load-balancer/

Can I just use PHP w/ CURL to submit the query?

If the entire goal of your PHP script is to run another command, why not just run the other command directly? Why wrap it in PHP?

If you need to use PHP for some reason (eg, to do something with the instance id other than to echo it out, you could improve performance by using PHP's built in HTTP ability instead of running another process:

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

If you can get the instance id via the command line, you can get the results of the latter in PHP using the PHP's exec function. When you get the result, just echo it.

$instance_id = exec([your command here]);
echo $instance_id;

Alternatively, after reading the post you linked to, you can also do it this way:

$instance_id = file_get_contents(
     "http://169.254.169.254/latest/meta-data/instance-id");
echo $instance_id;

You can use shell_exec to get the instance-id if you are using 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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM