0

作为一个更大的web应用程序的一部分,我使用谷歌数据存储和火力地堡的组合。在我本地机,所有的请求都通过无缝的,但是当我部署我的应用程序到GAE(如何使用Node.js - 灵活的环境)一切工作除了到数据存储的电话。这些请求不会直接或通过承诺抛出错误,而永远不会返回,挂起进程。谷歌数据存储在生产默默地失败(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); 
 
    } 
 
    }); 
 

 
} 
 

 
}

UPDATE:

试图manual_scaling发现here但似乎没有工作。还发现这似乎是this article类似的问题。

回答

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

请保持这些链接的手表分辨率的更新。