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_PROJECT
と CLOUDSDK_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_PROJECT
もCLOUDSDK_CORE_PROJECT
も両方読む。
両方設定されている場合はGOOGLE_CLOUD_PROJECT
を優先する。
ちなみにGCP_PROJECT
については調べておらず。(cloud functions とかで使われている?)