Google数据存储无法正常生产(node.js)

时间:2017-02-04 03:59:19

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

作为更大型网络应用的一部分,我正在使用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的manual_scaling,但似乎没有用。还发现this article似乎是一个类似的问题。

1 个答案:

答案 0 :(得分: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

请密切关注这些链接以获取最新解决方案。