GCP の環境変数

GCP のデフォルト・プロジェクトを設定する方法に、環境変数を設定する方法があるが、同じような役割っぽい環境変数がいくつかある。

GOOGLE_CLOUD_PROJECT
CLOUDSDK_CORE_PROJECT
GCP_PROJECT
GCLOUD_PROJECT

GCLOUD_PROJECT は deprecated のようだ。
GCLOUD_PROJECT is deprecared in favor of GOOGLE_CLOUD_PROJECT + avoid using it at all · Issue #251 · GoogleCloudPlatform/nodejs-getting-started · GitHub

GOOGLE_CLOUD_PROJECTCLOUDSDK_CORE_PROJECT を混ぜて使っちゃってハマったことがあった。
bq コマンドは GOOGLE_CLOUD_PROJECT より CLOUDSDK_CORE_PROJECT を優先するっぽいのだが、google-cloud-ruby は逆のようだ。

CLOUDSDK_CORE_PROJECT を設定すると、ローカルでは思った通りに動いたのに、サーバ上ではうまく動かなかったことがあった。よくよく調べたら、サーバ上では GOOGLE_CLOUD_PROJECT も設定しており、google-cloud-ruby がそっちに従ってた。

混乱するので混ぜるな危険! しかし、環境変数を乱立させないでほしい...

2022-01-30 追記

どうも勘違いしていた...

gcloud, bq

GOOGLE_CLOUD_PROJECTは無視している?
CLOUDSDK_CORE_PROJECTは読んでる。gcloud config setより優先される。

google-cloud-ruby, google-cloud-python

GOOGLE_CLOUD_PROJECTCLOUDSDK_CORE_PROJECTも両方読む。
両方設定されている場合はGOOGLE_CLOUD_PROJECTを優先する。

ちなみにGCP_PROJECTについては調べておらず。(cloud functions とかで使われている?)