作为更大型网络应用的一部分,我正在使用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似乎是一个类似的问题。
答案 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
请密切关注这些链接以获取最新解决方案。