代码之家  ›  专栏  ›  技术社区  ›  Lin Du Correcter

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

  •  3
  • Lin Du Correcter  · 技术社区  · 7 年前

    有可能吗?这是我的 app.yaml :

    runtime: nodejs8
    env_variables:
      NODE_ENV: production
      PORT: 8080
      API_KEY: ${API_KEY}
    

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

    当我奔跑 API_KEY=xdfj212c gcloud app deploy app.yaml 命令,我想通过 API_KEY=xdfj212c 到 App.YAML 并将占位符替换为 xdfj212c .

    预期结果:

    runtime: nodejs8
    env_variables:
      NODE_ENV: production
      PORT: 8080
      API_KEY: xdfj212c
    

    或者,在我跑之后

    1. export API_KEY=xdfj212c

    2. gcloud app deploy

    我想要同样的行为。

    这对google app engine部署工作流有意义吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mangu Dan Cornilescu    7 年前

    你可以一直用“sed”这个词:

    $ sed -i 's/${API_KEY}/xdfj212c/g' app.yaml && gcloud app deploy
    

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

    另一个选项是将“app.yaml”文件保存为类似“app\u template.yaml”的文件,并对您的部署执行以下操作:

    $ sed 's/${API_KEY}/xdfj212c/g' app_template.yaml | tee app.yaml; gcloud app deploy
    

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