有可能吗?这是我的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
或者,当我运行
export API_KEY=xdfj212c
gcloud app deploy
我想要相同的行为。
这对Google App Engine部署工作流程有意义吗?
答案 0 :(得分:1)
在app.yaml
中,您可以include另一个YAML配置
includes:
- extra_env_vars.yaml
您可以在插入environment variables
时动态创建的# Unix-like OS
export DB_PASSWORD=your_password
export DB_HOST=your_host
echo -e "env_variables:\n DB_PASSWORD: $DB_PASSWORD\n DB_HOST: $DB_HOST" > extra_env_vars.yaml
# Windows
set DB_PASSWORD=your_password
set DB_HOST=your_host
(echo env_variables: & echo. DB_PASSWORD: %DB_PASSWORD% & echo. DB_HOST: %DB_HOST%) > extra_env_vars.yaml
生成的extra_env_vars.yaml
如下所示:
env_variables:
DB_PASSWORD: your_password
DB_HOST: your_host
最后,在版本控制系统中忽略extra_env_vars.yaml
。
答案 1 :(得分:0)
您始终可以使用“ sed”:
.blur {
transition: all .5s ease;
filter: blur(3px);
}
'坏'的事情是,这会将密钥存储回去,但是您始终可以追加一个新的'sed'命令以再次用占位符替换密钥,或者使用VCS机制仅重置更改文件。 / p>
另一个选择是将“ app.yaml”文件另存为“ app_template.yaml”,然后针对您的部署执行此操作:
$ sed -i 's/${API_KEY}/xdfj212c/g' app.yaml && gcloud app deploy
这将在新文件“ app.yaml”中进行替换,然后进行部署。