【问题标题】:Google Datastore Silently Failing in Production (node.js)Google 数据存储在生产中静默失败 (node.js)
【发布时间】:2017-06-21 12:53:34
【问题描述】:

作为大型网络应用程序的一部分,我结合使用了 Google Datastore 和 Firebase。在我的 本地 机器上,所有请求都无缝通过,但是当我将我的应用程序部署到 GAE(使用 node.js - 灵活环境)时,一切正常除了调用数据存储。请求不会直接或通过承诺抛出错误,并且永远不会返回,挂起进程。

我当前的配置设置为使用包含我的私钥的服务帐户密钥文件。我检查了它是否具有适当的范围(甚至添加了比我应该的更多以防万一拥有数据存储所有者权限)。

我已经将应用程序提炼到最简单的部分,但仍然没有运气。我被困住了,正在寻找任何建议。

const datastore = require( '@google-cloud/datastore' );

const config = require( 'yaml-config' )
    .readConfig( 'config.yaml' );

module.exports = {

get_test: function(query, callback) {

  var ds_ref = datastore({
    projectId: config.DATASTORE_PROJECT,
    keyFilename: __dirname + config.GOOGLE_CLOUD_KEY
  });

  var q = ds_ref.createQuery('comps')
    .filter('record', query.record);

  ds_ref.runQuery(q, function(err, entities) {

    if (!err) {
      if (entities.length > 0) {
        callback(err, entities[0]);
      } else {
        callback(err, []);
      }
    } else {
      callback(err, undefined);
    }
  });

}

}

更新:

尝试手动缩放找到here,但似乎没有用。还发现this article 似乎是一个类似的问题。

【问题讨论】:

    标签: node.js google-app-engine google-cloud-datastore google-api-nodejs-client


    【解决方案1】:

    问题似乎出在 grpc 模块中。使用 0.6.0 版本的数据存储。这将自动使用旧版本的 grpc。该解决方案适用于计算引擎。但是,您仍然会面临灵活环境的问题。这是因为在部署柔性环境时,它会使用有问题的新模块。

    另外请参考以下 gitHub 上的链接: https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1955 https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1946

    请留意这些链接以获取最新的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多