当前位置: 首页 > 知识库问答 >
问题:

GCP gcloud部署-逃避环境变量

慕容坚
2023-03-14

我们有一个正在工作的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)参数--set-env-vars:错误的语法为判决arg:[^val1]

我们使用转义syntac尝试了许多变体,但都以某种错误告终。对正确的语法有什么想法吗?或者如果使用--set-env-vars,这种事情是可能的吗?

共有1个答案

方浩旷
2023-03-14

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

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

gcloud functions deploy Your_Function --runtime python37 --set-env-vars LIST="a.1 b.2 c.3" --trigger-http
 类似资料:
  • 在开展实验之前,我们需要根据不同的平台提前安装相关依赖的软件包,具体需要的软件包如下: Rust 工具链 Rust 版本管理工具:rustup Rust 软件包管理工具:cargo Rust 编译器:rustc 等等 虚拟机软件:QEMU (版本至少支持 RISC-V 64) 具体安装的方法在不同平台上安装方式类似,但也有细微差别,后面会有具体说明。 安装 QEMU 根据不同平台,我们分为下面 3

  • PWA 项目必须部署在 HTTPS 环境上才能够生效,主要是因为 Service Worker 只会在 HTTPS 环境下才能注册成功,我们不用担心在本地开发的时候 Service Worker 是否生效的问题,因为 Service Worker 在 localhost 和 127.0.0.1 的 host 下是能够注册成功的,这样可以确保我们在本地调试工作是能够顺利进行的。我们这里讲述的是如何部

  • 描述 (Description) 它动态构建选择器,并使用属性或变量值作为任意字符串。 例子 (Example) 以下示例演示了在LESS文件中使用转义 - <html> <head> <title>Less Escaping</title> <link rel = "stylesheet" type = "text/css" href = "style.css" /

  • 环境要求(单机环境) jdk zookeeper zkui(方便查看zookeeper集群信息) mysql node.js 环境配置过程: vmware安装centos(其他linux环境理论上一样,但未测试),选择NAT模式方便与宿主机联网; 安装jdk(我使用的jdk1.8) 安装zookeeper和zkui 安装node.js(porter-ui需要node环境) 准备mysql服务器,p

  • 删除警告 为了减少文件大小,Vue 精简独立版本已经删除了所有警告,但是当你使用 Webpack 或 Browserify 等工具时,你需要一些额外的配置实现这点。 Webpack 使用 Webpack 的 DefinePlugin 来指定生产环境,以便在压缩时可以让 UglifyJS 自动删除代码块内的警告语句。例如配置: var webpack = require('webpack') mo

  • Kibana5 是是一个完整的 web 应用。使用时,你需要做的只是打开浏览器,然后输入你运行 Kibana 的机器地址然后加上端口号。比如说:localhost:5601 或者 http://YOURDOMAIN.com:5601。 但是当你准备在生产环境使用 Kibana5 的时候,比起在本机运行,就需要多考虑一些问题: 在哪运行 kibana 是否需要加密 Kibana 出入的流量 是否需要