В рамках более крупного веб-приложения я использую комбинацию 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);
}
});
}
}
ОБНОВЛЕНИЕ:
Пробовал manual_scaling, найденный здесь, но, похоже, не работал. Также нашел эту статью, которая кажется аналогичная проблема.