【发布时间】:2020-02-12 21:23:18
【问题描述】:
我们有一个有效的 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:dict arg 的语法错误:[^val1]
我们使用转义语法尝试了多种变体,但都以某种错误结束。关于正确语法的任何想法,或者是否可以使用 --set-env-vars 实现这样的事情?
【问题讨论】:
-
我会使用
--env-vars-file,这样就不需要命令行转义了。 cloud.google.com/functions/docs/env-var -
如果您需要转义的答案,您需要指定运行 CLI 的操作系统。 Linux 和 Windows 的转义是不同的。
-
如果您找到答案,请在此处添加答案
标签: google-cloud-platform syntax environment-variables gcloud