GCEインスタンス内からProjectIDなどを取得する


概要

GAEでは環境変数としてProjectIDがとってこれるけど、
GCEインスタンス内でProjectIDなどを取得するにはどうすればいいか。
やり方は簡単。GCEのメタデータサーバからcurlとかでリクエストなげてとってくる。

GCEのメタデータサーバとは

プロジェクト内のGCEのインスタンスすべてのメタデータを格納しているサーバで、GCEインスタンス内や ComputeEngineAPIから問い合わせることができます。
インスタンス内から問い合わせる場合は認証は必要なく、curlなどを使用してAPIを叩いて特定の情報を取得することができます。

メタデータサーバからProjectIDを取得するには

ヘッダに Metadata-Flavor: Google を入れて取得用のエンドポイントを叩きます。

$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"

参考

project-id以外も取得できます。以下を参考にしてください。