无论如何将环境变量从 Cloud Build 注入 App Engine 标准环境?
我不想将我的环境变量推送到 GitHubapp.yaml
或.env
. 因此,当 Cloud Build 拉取和部署时,它会丢失.env
文件并且服务器无法完成某些请求。
我试图避免使用 Datastore,因为 Datastore 的异步特性会使代码更加混乱。我尝试使用此处找到的加密机密,但这似乎不起作用,因为我将机密添加到应用程序部署并且它们没有进入部署,所以我认为这不是 Cloud Build 的用例。
我还尝试了这里的教程,将.env
文件从存储导入 App Engine 标准,但由于标准没有本地存储,我认为它进入了空白。
那么有没有办法在.env
不使用数据存储、提交app.yaml
或.env
更改控制的情况下将其注入 App Engine 标准环境?可能使用 Cloud Build、KMS 或某种类型的存储?
这是我尝试过的cloudbuild.yaml
:
steps:
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy"]
secretEnv: ['SECRET1', 'SECRET2', 'SECRET3', 'SECRET4', 'SECRET5']
timeout: "1600s"
secrets:
- kmsKeyName: projects/<Project-Name>/locations/global/keyRings/<Key-Ring-Name>/cryptoKeys/<Key-Name>
secretEnv:
SECRET1: <encrypted-key-base64 here>
SECRET2: <encrypted-key-base64 here>
SECRET3: <encrypted-key-base64 here>
SECRET4: <encrypted-key-base64 here>
SECRET5: <encrypted-key-base64 here>