Google cloud platform GCP gcloud部署-转义环境变量

Google cloud platform GCP gcloud部署-转义环境变量,google-cloud-platform,syntax,environment-variables,gcloud,Google Cloud Platform,Syntax,Environment Variables,Gcloud,我们有一个正在工作的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

我们有一个正在工作的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]

因此,我们开始研究转义值,如中所示

根据这篇文章,我们认为以下可能有效

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)参数--设置环境变量:dict arg的语法错误:[^val1]


我们使用转义syntac尝试了许多变体,但都以某种错误结束。关于正确语法的任何想法,或者如果使用--set env vars可以实现这一点?

由于您使用的是python,并且希望将列出的值作为环境变量,因此我发现了一个有用的方法,即创建一个LIST_ITEMS变量,然后通过python代码进行拆分

我已经复制了这一点,可以确认您可以使用gcloud命令添加变量:

gcloud functions deploy Your_Function --runtime python37 --set-env-vars LIST="a.1 b.2 c.3" --trigger-http

由于您使用的是python,并且希望将列出的值作为环境变量,因此我发现了一个有用的方法,即创建一个LIST_ITEMS变量,然后由python代码拆分

我已经复制了这一点,可以确认您可以使用gcloud命令添加变量:

gcloud functions deploy Your_Function --runtime python37 --set-env-vars LIST="a.1 b.2 c.3" --trigger-http

我将使用
--env vars file
,这样就不需要命令行转义。如果需要转义的答案,则需要指定运行CLI的操作系统。转义对于Linux和Windows是不同的。我将使用
--env vars file
,这样就不需要命令行转义。如果需要转义的答案,则需要指定运行CLI的操作系统。转义对于Linux和Windows是不同的。