Ale*_*kay 10 google-app-engine node.js google-cloud-platform google-cloud-build
是否有将 Cloud Build 中的环境变量注入 App Engine 标准环境的方法?
我不想将我的环境变量推送到 GitHubapp.yaml
或.env
. 因此,当 Cloud Build 拉取和部署时,它会丢失.env
文件并且服务器无法完成某些请求。
我试图避免使用 Datastore,因为 Datastore 的异步性质会使代码变得更加混乱。我尝试使用此处找到的加密机密,但这似乎不起作用,因为我将机密添加到 app deploy 并且它们没有进入部署,所以我认为这不是 Cloud Build 的用例。
我还尝试了此处的教程,将.env
文件从存储导入 App Engine Standard,但由于 Standard 没有本地存储,因此我认为它无效。
那么有没有办法在.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>
Run Code Online (Sandbox Code Playgroud)
hig*_*ian 10
这是一个关于如何在您的云构建(触发器)设置中安全地存储环境变量并将它们导入您的应用程序的教程。
基本上分为三个步骤:
将您的环境变量添加到构建触发器设置之一的“变量”部分
按照惯例,在构建触发器中设置的变量必须以下划线 (_) 开头
配置cloudbuild.yaml
(在代码示例的第二步)从构建触发器读取变量,将它们设置为 env vars,并将所有 env vars 写入本地 .env 文件
添加couldbuild.yaml
(下面)到您的项目根目录
steps:
- name: node:10.15.1
entrypoint: npm
args: ["install"]
- name: node:10.15.1
entrypoint: npm
args: ["run", "create-env"]
env:
- 'MY_SECRET_KEY=${_MY_SECRET_KEY}'
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy"]
timeout: "1600s"
Run Code Online (Sandbox Code Playgroud)
将create-env
脚本添加到package.json
"scripts": {
"create-env": "printenv > .env"
},
Run Code Online (Sandbox Code Playgroud)
将 .env 中的 env vars 读取到您的应用程序 (config.js)
安装 dotenv 包
npm i dotenv -S
添加config.js
到您的应用程序
// Import all env vars from .env file
require('dotenv').config()
export const MY_SECRET_KEY = process.env.MY_SECRET_KEY
console.log(MY_SECRET_KEY) // => Hello
Run Code Online (Sandbox Code Playgroud)
完毕!现在您可以通过触发云构建来部署您的应用程序,您的应用程序将可以访问环境变量。
归档时间: |
|
查看次数: |
9844 次 |
最近记录: |