在云函数中获取环境变量

时间:2020-08-05 08:55:07

标签: python google-cloud-platform google-cloud-functions environment-variables python-3.8

我在GCP中有一个Cloud Function,可以查询特定项目/环境中的BigQuery。由于我有多个环境,因此我想获得云功能的当前项目/环境。这样便可以在相应的环境中访问BigQuery。当然,我可以对project_id进行硬编码,但是我想以编程方式进行此操作。

根据Google环境变量是自动设置的。但是当我尝试访问这些文件时,我找不到它们。

例如,我尝试了以下方法,但没有得到任何环境信息。 var由Google列出。

TimeSynchronizer

有人设法在运行时访问环境变量吗?

4 个答案:

答案 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')