有没有办法在Google App Engine的app.yaml中导入环境变量?

时间:2017-10-25 18:17:18

标签: google-app-engine

我知道您可以按照app.yaml documentation中的说明在env_variables中声明app.yaml。但是,部署时是否可以将本地环境中的环境变量包含到app.yaml中。

作为我尝试完成的一个例子

# in app.yaml
runtime: python27
api_version:1
threadsafe: true
service: {{ $AN_ENVIRONMENT_VARIABLE }}

2 个答案:

答案 0 :(得分:5)

是的,您可以使用includes:指定要包含的文件数组。在包含的文件中,您可以像在env_variables:中一样指定app.yaml。 示例:app.yaml

runtime: go
api_version: go1

env_variables:
  FIST_VAR: myFirstVar

includes:
- credentials.yaml

credentials.yaml

env_variables:
  SECOND_VAR: mySecondVar

答案 1 :(得分:3)

不,app.yaml配置文件不存在此类模板支持。

附注:app.yaml文件不仅用于提取部署指令信息,还用于配置GAE上相应服务的操作。除非所部署的服务在每个方面(除了名称之外)都相同,否则以这种方式配置服务名称并没有多大意义 - 极不可能。

针对特定于环境的部署的一种可能方法是为应用程序代码设置不同的版本控制分支,每个环境对应一个,具有所需的app.yaml内容。

另一种方法是将部署命令包装在脚本中并在该脚本中执行环境替换。

至于将凭证信息传递给应用程序,尚未提供干净,直接的解决方案。但存在方法: