如何将系统环境变量传递给 app.yaml?

sli*_*wp2 8 google-app-engine google-cloud-platform

是否可以?这是我的app.yaml

runtime: nodejs8
env_variables:
  NODE_ENV: production
  PORT: 8080
  API_KEY: ${API_KEY}
Run Code Online (Sandbox Code Playgroud)

${API_KEY} 就像一个占位符。

当我运行API_KEY=xdfj212c gcloud app deploy app.yaml命令时,我想传递API_KEY=xdfj212capp.yaml占位符并将其替换为 xdfj212c.

期待结果:

runtime: nodejs8
env_variables:
  NODE_ENV: production
  PORT: 8080
  API_KEY: xdfj212c
Run Code Online (Sandbox Code Playgroud)

或者,在我跑完之后

  1. export API_KEY=xdfj212c

  2. gcloud app deploy

我想要同样的行为。

这对谷歌应用引擎部署工作流程有意义吗?

Man*_*ngu 3

你总是可以使用sed

$ sed -i 's/${API_KEY}/xdfj212c/g' app.yaml && gcloud app deploy
Run Code Online (Sandbox Code Playgroud)

“坏”的是,这会将密钥存储回来,但您始终可以附加一个新sed命令以用占位符再次替换密钥,或者使用 VCS 机制来重置文件的更改。

另一种选择是将app.yaml文件保存为类似的文件app_template.yaml,并为您的部署执行此操作:

$ sed 's/${API_KEY}/xdfj212c/g' app_template.yaml | tee app.yaml; gcloud app deploy
Run Code Online (Sandbox Code Playgroud)

这将在新文件 中进行替换,app.yaml然后进行部署。