我目前正在尝试将我的 App Engine node.js 服务连接到 Google Cloud Memorystore。按照本指南,我需要在同一网络和区域(在我的情况下为欧洲)中运行。这似乎是不可能的,因为我只能在europe-west-1或europe-west-4中创建 Redis 实例,而 App Engine 为我提供europe-west、europe-west-2或europe-west-3。
我假设“同一地区”代表europe-west-x?如果这是真的,我仍然无法连接,X.X.X.X:XXXX
按照 gcloud 控制台(对于我的活动 Redis 实例)中的描述在 IP 上配置 Node.js,应用程序会抛出连接失败,ETIMEDOUT
.
是地区的原因吗?
该实例已将授权网络设置为default
,并且应用程序app.yaml具有:
network:
name: default
更新:
即使我按照建议在欧洲西部有 GAE,在欧洲西部有Memorystor
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);
});