我正在部署一个使用config. NODE_CONFIG被读取并用于取代任何本地配置。这在部署带有机密的服务时非常方便,因为可以从外部注入配置。
当尝试使用 Google Cloud Run 和 CLI 实现此目的时,我收到转义错误。显然 CLI 仅支持字典。
JSON有没有更好的方法通过环境变量传递内容?
gcloud run deploy pr-$PULL_REQUEST \
--platform=managed \
--revision-suffix=$revision \
--region us-central1 \
--set-env-vars="NODE_ENV=development,NODE_CONFIG='$json'" \
--allow-unauthenticated \
--image gcr.io/...
Run Code Online (Sandbox Code Playgroud)
如果您有多个环境变量,并且坚持在gcloudCLI 上列出环境变量(而不是使用 YAML + 使用 编写 Service 对象gcloud alpha run services replace),您可以简单地重复--set-env-vars:
gcloud run deploy \
--set-env-vars="A=B" \
--set-env-vars="C=D" \
--image=gcr.io/cloudrun/hello
Run Code Online (Sandbox Code Playgroud)
在这里您可以简单地添加"KEY=$value"周围的引号。
引用值 1) 可以防止参数在$value包含空格的情况下拆分,2) 转义引号,$value 因为您有一个 json 值。
json='{"hello":"world"}'
gcloud run deploy foo \
--set-env-vars="A=$json" \
--set-env-vars="C=D" \
--image=gcr.io/cloudrun/hello
Run Code Online (Sandbox Code Playgroud)
gcloud run services describe [...]输出:
Env vars:
A {"hello":"world"}
C D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12509 次 |
| 最近记录: |