0

我正在使用 nconf 探索 GAE,我想知道在部署应用程序后以下设置是否安全。

我担心的是我的“config.dev.json”和“config.prod.json”文件都部署了,尽管它们包含在“.gitignore”中。

我不确定在执行以下操作后将哪些信息传递给 gae(我不希望暴露我的配置密钥):

$ git add .
$ git commit -m 'Commiting'
$ glcoud app deploy

我的 Node 应用程序结构如下所示:

 - /myProject
   - /node_modules
   - .gitignore
   - app.js
   - app.yaml
   - config.js
   - keys.dev.json
   - keys.prod.json
   - package-lock.json
   - package.json

// .gitignore

 node_modules
 keys.dev.json
 keys.prod.json

// config.js:

 const nconf = require("nconf");
 nconf.argv().env();

 if (nconf.get("NODE_ENV") === "production") {
     nconf.file("keys.prod.json");
 } else {
     nconf.file("keys.dev.json");
 }
 ...
4

1 回答 1

2

包含文件.gitignore对 GAE 上的部署没有任何影响,该文件仅由git.

如果您想阻止将文件部署到 GAE,您需要使用文件的常规设置skip_files中的选项:app.yaml

跳过文件

可选的。skip_files元素指定不将应用程序目录中的哪些文件上传到 App Engine。该值可以是正则表达式,也可以是正则表达式列表。上载应用程序时,要从要上载的文件列表中忽略与任何正则表达式匹配的任何文件名。

例如,要跳过名称以.bak结尾的文件,请添加如下所示的 skip_files部分:

skip_files:
- ^(.*/)?\.bak$

旁注

  • 如果我理解正确,您的应用程序使用这些文件,所以在我看来,您必须将它们与您的应用程序一起部署。
  • 即使文件部署在 GAE 上,您的应用程序也有责任(和完全控制)决定该文件是否暴露给外部请求。
  • --verbosity如果您想确切知道部署中包含哪些文件,您可以使用命令选项在部署期间看到它们显示gcloud app deploy
于 2018-01-13T14:30:58.267 回答