扫码关注官方订阅号
JasonQ-AWS提出的解决方案对于获取帐户中所有实例和应用程序的信息非常有用。然而,它并不告诉您描述当前进程执行的实例的信息。
为了实现这一点,您需要使用IMDSv2,它需要两个CURL命令,第一个用于获取令牌,第二个用于获取当前实例的实际元数据。
在PHP中,代码可以是:
$ch = curl_init(); // 获取有效的令牌 $headers = array ( 'X-aws-ec2-metadata-token-ttl-seconds: 10' ); $url = "http://169.254.169.254/latest/api/token"; curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT" ); curl_setopt( $ch, CURLOPT_URL, $url ); $token = curl_exec( $ch ); echo "<p> TOKEN :" . $token; // 获取当前实例的元数据 $headers = array ( 'X-aws-ec2-metadata-token: '.$token ); $url = "http://169.254.169.254/latest/dynamic/instance-identity/document"; curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "GET" ); $result = curl_exec( $ch ); echo "<p> RESULT :" . $result;
您只需要提取所需的信息。您还可以使用更具体的URL请求唯一的信息,例如实例ID:
$url = "http://169.254.169.254/latest/meta-data/instance-id";
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
JasonQ-AWS提出的解决方案对于获取帐户中所有实例和应用程序的信息非常有用。然而,它并不告诉您描述当前进程执行的实例的信息。
为了实现这一点,您需要使用IMDSv2,它需要两个CURL命令,第一个用于获取令牌,第二个用于获取当前实例的实际元数据。
在PHP中,代码可以是:
您只需要提取所需的信息。您还可以使用更具体的URL请求唯一的信息,例如实例ID: