【问题标题】:GCP gcloud deploy - escaping environmental variablesGCP gcloud deploy - 转义环境变量
【发布时间】: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


【解决方案1】:

由于您使用的是 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多