Google Datastore тихо выходит из строя в рабочей среде (node.js)

В рамках более крупного веб-приложения я использую комбинацию 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, найденный здесь, но, похоже, не работал. Также нашел эту статью, которая кажется аналогичная проблема.




Ответы (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

Пожалуйста, следите за этими ссылками для обновления разрешения.

person Rahul Shetty    schedule 04.02.2017