Maison > Questions et réponses > le corps du texte
P粉3602660952023-08-28 00:00:45
La solution proposée par JasonQ-AWS est très utile pour obtenir les informations de toutes les instances et applications du compte. Cependant, il ne vous fournit pas d'informations décrivant l'instance dans laquelle le processus en cours s'exécute.
Pour y parvenir, vous devez utiliser IMDSv2, qui nécessite deux commandes CURL, la première pour obtenir le jeton et la seconde pour obtenir les métadonnées réelles de l'instance actuelle.
En PHP, le code peut être :
$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;
Il vous suffit d'extraire les informations dont vous avez besoin. Vous pouvez également demander des informations uniques telles que l'ID de l'instance en utilisant une URL plus spécifique :
$url = "http://169.254.169.254/latest/meta-data/instance-id";