Cara mendapatkan metadata contoh menggunakan PHP AWS SDK
P粉032649413
P粉032649413 2023-08-27 11:20:25
0
1
622
<p>Saya mahu menggunakan SDK AWS untuk mendapatkan metadata tika (cth AZ) tika EC2 semasa. Saya menemui alternatif, tetapi ia tidak menggunakan SDK, cuma <kod>file_get_contents</kod>. Bagaimana untuk menggunakan SDK untuk melaksanakan fungsi ini? </p>
P粉032649413
P粉032649413

membalas semua(1)
P粉360266095

Penyelesaian yang dicadangkan oleh JasonQ-AWS sangat berguna untuk mendapatkan maklumat semua kejadian dan aplikasi dalam akaun. Walau bagaimanapun, ia tidak memberitahu anda maklumat yang menerangkan contoh di mana proses semasa sedang dilaksanakan.

Untuk mencapai ini, anda perlu menggunakan IMDSv2, yang memerlukan dua arahan CURL, yang pertama untuk mendapatkan token dan yang kedua untuk mendapatkan metadata sebenar tika semasa.

Dalam PHP, kodnya boleh menjadi:

$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;

Anda hanya perlu mengekstrak maklumat yang anda perlukan. Anda juga boleh meminta maklumat unik seperti ID contoh menggunakan URL yang lebih khusus:

$url = "http://169.254.169.254/latest/meta-data/instance-id";
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan