在 App Engine 中为 CI/CD 管道存储环境变量的位置?

Where to store environment variables in App Engine for CI/CD Pipeline?

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

据我了解,它们是在 app.yaml 文件中设置的。但是如果那个文件被推送到 repo,它就会包含秘密的 API 密钥,这是坏的..

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

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

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

感谢您的帮助

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

对我来说这个脚本是本地的东西,但我想你可以在 google-cloud-build

中做类似的事情

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

我遵循了 this blog post 中列出的步骤。

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