我们有一个正在运行的gcloud deploy命令,我们正在尝试向其添加新的环境变量。当前,工作示例如下:
gcloud functions deploy ftn_handler --set-env-vars APP_PROJECT_ID=my-project-id,CLOUD_STORAGE_BUCKET=my_bucket_name,ENVIRONMENT=development --runtime python37 --memory=1024MB --trigger-resource my_project.appspot.com --trigger-event google.storage.object.finalize
现在,我们要添加的env变量是一个简单列表,例如:MY_LIST = ['val1','val2'],因此首先我们尝试了显而易见的方法:
gcloud functions deploy ftn_handler --set-env-vars APP_PROJECT_ID=my-project-id,CLOUD_STORAGE_BUCKET=my_bucket_name,ENVIRONMENT=development,MY_LIST=['val1', 'val2'] --runtime python37 --memory=1024MB --trigger-resource my_project.appspot.com --trigger-event google.storage.object.finalize
但立即返回错误:
(gcloud.functions.deploy)无法识别的参数:val2]
因此,我们开始考虑转义this article
中指示的值根据这篇文章,我们认为以下方法可能会起作用
gcloud functions deploy ftn_handler --set-env-vars APP_PROJECT_ID=my-project-id,CLOUD_STORAGE_BUCKET=my_bucket_name,ENVIRONMENT=development,MY_LIST=^,^val1,val2 --runtime python37 --memory=1024MB --trigger-resource my_project.appspot.com --trigger-event google.storage.object.finalize
但我们仍然收到错误消息:
(gcloud.functions.deploy)参数--set-env-vars:字典arg的语法错误:[^ val1]
我们已经使用转义的句法尝试了多种变体,但都以某种错误结束。关于适当语法的任何想法,或者甚至可以通过--set-env-vars实现这种想法?
答案 0 :(得分:0)
由于您使用的是python,并且希望将值列为环境变量,因此我发现了一个有用的answer,其中创建了LIST_ITEMS变量,然后由python代码拆分了该变量。
我已复制了此内容,可以确认您可以使用gcloud命令添加变量:
gcloud functions deploy Your_Function --runtime python37 --set-env-vars LIST="a.1 b.2 c.3" --trigger-http