Передача переменных среды в качестве параметров в сценарии python при развертывании облачных функций - PullRequest
0 голосов
/ 27 февраля 2020

Я хотел развернуть облачную функцию со скриптом python, имеющим некоторые параметры, используя CLI. И я хочу использовать переменные окружения в качестве параметров для моего скрипта

main.py

from sub import txn as cust 
def func(): 
  sub.cust()

main.py импорт sub .py . sub.py загрузка строк в таблицу bq, и мне нужно передать имя таблицы, набор данных и проецировать параметры в файл sub.py .

sub.py

from google.cloud import bigquery
from google.oauth2 import service_account

some stuff(generating random data and loading into BQ table)

dataset_ref = client.dataset(os.environ['DATASET'], os.environ['PROJECT'])
table_ref = dataset_ref.table(os.environ['TABLE'])
table = client.get_table(table_ref)

переменные env:

DATASET='database'
PROJECT='project'
TABLE ='table'

И я следил за документацией Google здесь ссылка , но не удалось успешно развернуть его, указав аргументы командной строки

gcloud functions deploy func --runtime python37 --trigger-http --allow-unauthenticated --region asia-northeast1 --set-env-vars DATASET=dataset,TABLE=table,PROJECT=project

Структура моей папки соответствует

.env.yaml cloubbuild.yaml requirements main.py sub.py

I ' получаю эту ошибку:

ОШИБКА: (gcloud.functions.deploy) OperationError: code = 3, message = Функция не удалась при загрузке кода пользователя. Сообщение об ошибке: файл main.py, как ожидается, будет содержать функцию с именем fun c

Любая помощь приветствуется.

...