概要
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以外も取得できます。以下を参考にしてください。