Получить переменные среды в облачной функции - PullRequest
3 голосов
/ 05 августа 2020

У меня есть облачная функция в GCP, которая запрашивает BigQuery в конкретном c проекте / среде. Поскольку у меня несколько сред, я хотел бы получить текущий проект / среду облачной функции. Это сделано для того, чтобы я мог получить доступ к BigQuery в соответствующей среде. Конечно, я мог бы просто жестко закодировать project_id, но я хотел бы сделать это программно.

Согласно Google переменные среды устанавливаются автоматически. Но когда я пытаюсь получить к ним доступ, я не могу найти ни одного из них.

Например, я пробовал следующее, что не дает мне никакого env. var, указанный Google.

print(os.environ)

Кому-нибудь удалось получить доступ к переменным среды во время выполнения?

Ответы [ 3 ]

2 голосов
/ 27 августа 2020

Эти переменные среды, о которых вы говорите, применимы только к python 3.7, во втором разделе на этой странице (https://cloud.google.com/functions/docs/env-var#nodejs_10_and_subsequent_runtimes) указано:

Все языки и среды выполнения кроме упомянутых в предыдущем разделе, будет использоваться этот более ограниченный набор предопределенных переменных среды.

Это означает, что GCP_PROJECT больше не установлен на 3.8 (по крайней мере, на данный момент).

1 голос
/ 05 августа 2020

Вы хотели вернуться из 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')
1 голос
/ 05 августа 2020

Это работает нормально

import os
os.environ.get('GCP_PROJECT')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...