我在GCP中有一个Cloud Function,可以查询特定项目/环境中的BigQuery。由于我有多个环境,因此我想获得云功能的当前项目/环境。这样便可以在相应的环境中访问BigQuery。当然,我可以对project_id进行硬编码,但是我想以编程方式进行此操作。
根据Google环境变量是自动设置的。但是当我尝试访问这些文件时,我找不到它们。
例如,我尝试了以下方法,但没有得到任何环境信息。 var由Google列出。
TimeSynchronizer
有人设法在运行时访问环境变量吗?
答案 0 :(得分:2)
您引用的那些环境变量仅适用于python 3.7,该页面的第二部分(https://cloud.google.com/functions/docs/env-var#nodejs_10_and_subsequent_runtimes)指出:
除了上一节中提到的语言和运行时之外,所有语言和运行时都将使用此更为有限的预定义环境变量集。
这意味着GCP_PROJECT不再设置为3.8(至少现在)。
答案 1 :(得分:2)
对于 Python 3.8,有一个解决方法:
import google.auth
_, project_id = google.auth.default()
print(project_id)
答案 2 :(得分:1)
这很好用
import os
os.environ.get('GCP_PROJECT')
答案 3 :(得分:1)
您是要从get_env
返回吗?
def get_env():
print(os.environ)
if 'GCP_PROJECT' in os.environ:
return os.environ['GCP_PROJECT']
这可以简化为以下几行:
environment = os.environ.get('GCP_PROJECT')