google-cloud-platform - GCP gcloud deploy - 转义环境变量
问题描述
我们有一个有效的 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:dict arg 的语法错误:[^val1]
我们使用转义语法尝试了许多变体,但都以某种错误结束。关于正确语法的任何想法,或者是否可以使用 --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
推荐阅读
- laravel - 如何在 Laravel 中创建自定义错误 419:页面已过期?
- laravel - 响应工厂 Laravel 上不存在 Cookie
- c# - 如何在同一个项目中单独运行 .cs 文件并出现在同一个文件夹中
- java - 在表格 XWPF 文档后添加分页符
- javascript - 如何获取数组中最频繁/出现的元素
- python - 为什么 Pandas DataFrames 不能包含列表作为值?
- android - 使用 navGraph 时如何处理片段中的 API 调用?
- jquery - 使用条形码扫描仪扫描时禁用多输入
- android - 发现蓝牙设备时未注册/调用广播接收器
- mysql - 我正在尝试在数据库中插入数据 .csv 文件 l 它会将标题显示为列记录?