在 App Engine for CI/CD Pipeline 中存储环境变量的位置?

问题描述

我正在云上部署我的第一个应用程序,我正在尝试设置我的环境变量。

据我所知,它们是在 app.yaml 文件中设置的。但是,如果将该文件推送到存储库,它将包含错误的 API 密钥。

我可以像对待 app.yaml 一样对待 .env,但问题是,如何在 CI/CD 管道中为 prod 设置环境变量?

我正在使用 Cloud Build 来运行我的构建管道。我来自 Bitbucket & Heroku,似乎没有办法像在这两个平台上那样为构建环境“设置”环境变量。

那么,我怎样才能让我的 .env 变量在我的应用程序中可用,而无需冒险将其推送到我的存储库中?

感谢您的帮助

解决方法

对于那些正在寻找的人,这是我如何解决这个问题的。

我遵循了 this blog post 中概述的步骤。

基本上我们在 .yaml 文件中设置变量,然后在构建过程中将其编译为 .env 文件。我们可以通过 Cloud Build 配置设置这些变量的值,以便限制对它们的访问并隐藏它们。

,

我有一个“部署”脚本,可以克隆我的 app.yaml,从 google-secret-manager 下载 api-keys,并将它们作为环境变量注入 env_variablesapp.yaml 部分然后使用新的 app.yaml 而不是原来的 list() 运行部署命令。

对我来说,这个脚本是本地的,但我想你可以在 google-cloud-build 中做类似的事情