В настоящее время я пытаюсь подключить службу App Engine node.js к Google Cloud Memorystore.Следуя этому руководству , мне нужно работать в одной сети и в одном регионе (в моем случае в Европе).Это кажется невозможным, поскольку я могу создать экземпляр Redis только в europe-west-1 или europe-west-4 , в то время как App Engine предлагает мне europe-west , европа-запад-2 или европа-запад-3 .
Я предполагаю, что «тот же регион» означает европа-запад-х ?Если это так, я все еще не могу подключиться, настроив Node.js на IP X.X.X.X:XXXX
, как описано в консоли gcloud (для моего активного экземпляра Redis), приложение сбрасывает соединение, ETIMEDOUT
.
Является ли регион причиной?
Для экземпляра авторизованной сети установлено значение default
, а для приложений app.yaml установлено:
network:
name: default
ОБНОВЛЕНИЕ:
Даже когда у меня есть GAE в europe-west-1 и Memorystor в europe-west , как и предполагалось, я получаю
Подключение Redis к XXXX: сбой XXXX - подключиться ETIMEDOUT XXXX: XXXX
Я использую node_redis со следующим фрагментом кода для проверки соединения (REDIS_PORT иREDIS_IP - это значения, которые я вижу на странице экземпляра Memorystore):
const redis = require('redis');
let redisClient = redis.createClient(REDIS_PORT, REDIS_IP);
redisClient.set("string key", "string val", redis.print);
redisClient.hset("hash key", "hashtest 1", "some value", redis.print);
redisClient.hset(["hash key", "hashtest 2", "some other value"], redis.print);
redisClient.hkeys("hash key", function (err, replies) {
console.log(replies.length + " replies:");
replies.forEach(function (reply, i) {
console.log(" " + i + ": " + reply);
});
redisClient.quit();
});
redisClient.on("error", function (err) {
console.log("Redis rror " + err);
});