environment-variables - 通过 gcloud 设置具有特殊字符的 Cloud Composer 环境变量
问题描述
我试图弄清楚如何通过gcloud
一些特殊字符创建一个 Google Cloud Composer 环境并设置环境变量。
环境变量示例:API_URL=https://stuff.api.thing.com
gcloud
我正在使用的 cmd 示例:
gcloud composer environments create new-env-1 --location=us-central1 --airflow_configs=[core-dags_are_paused_at_creation=True] --env-variables=[API_URL=https://stuff.api.thing.com,env_type=dev] --node_count=3 --python-version=3 --image-version=composer-1.10.0-airflow-1.10.6 --network=projects/backcountry-data-team/global/networks/default
运行上面的示例时,我收到以下错误:
ERROR: (gcloud.composer.environments.create) argument --env-variables: Bad value [[API_URL]: Only upper and lowercase letters, digits, and underscores are allowed. Environment variable names may not start with a digit.
根据 docs预计会出现此错误。
但是,如果我通过 GCP 控制台,我可以像示例一样设置环境变量。那么不应该有办法通过gcloud
吗?
解决方案
为了更好地了解社区,我将@DazWilkin 的评论作为答案。
该gcloud
命令需要一个逗号分隔的键值对“列表” ;但是,这与list
编程语言上的对象不同。例如,在 Python 中,该list
对象将是这样的:
[1,2,3]
相反,该gcloud
工具的预期格式是:
... the-flag=key1=value1,key2=value2
这也可以在文档(gcloud
选项卡下)中看到,如下所示:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=KEY=VALUE,KEY=VALUE...
正如@DazWilkin 所说,这意味着您不需要在键值对周围包含[
and 。]
将您的命令保留为下一个:
gcloud composer environments create new-env-1 --location=us-central1 \
--airflow_configs=core-dags_are_paused_at_creation=True \
--env-variables=API_URL=https://stuff.api.thing.com,env_type=dev \
--node_count=3 --python-version=3 --image-version=composer-1.10.0-airflow-1.10.6 \
--network=projects/backcountry-data-team/global/networks/default
推荐阅读
- xml - T-SQL XML 到表
- html - 无法更改字体大小
- javascript - 将 SVG 导出为 PDF,组/图层完好无损
- mysql - MySql Select Query隐藏列中的重复值
- php - 当从另一个 Laravel 应用程序发送 Http 请求时,Laravel 使用了不正确的数据库
- javascript - 如何在 JavaScript 中绘制云杉形状的三角形?
- xml - 如何使 xsl/xslt 在包含的 xml 文件上工作?
- c - 根据常量表达式的结果在指示符中选择标识符的能力会有用吗?
- c# - 为什么一个 List 返回 26 个项目,另一个返回 1 个?
- c# - xamarin.forms 十进制运算符在不同的文化中不同,不能使用文化信息