a función @Google Cloud agota el tiempo de espera al conectarse a Redis en la IP interna de Compute Engine
Creé una instancia de Redis usandohttps: //console.cloud.google.com/launcher/details/bitnami-launchpad/redis-h
y la interfaz de red es:
Estoy intentando conectarme a esta instancia de Redis desde un disparador de Firebase.
La pregunta es: ¿qué regla de firewall necesito para conectarme desde una función de nube a una instancia de proceso?
Proporcione tantos detalles como sea posible, p. Rangos de IP, entrada / salida, etc., y si tengo que conectar el cliente Redis a la instancia en la IP interna o la IP externa.
Este es el código:
const redis = require('redis');
let redisInstance = redis.createClient({
/* surely external IP needn't be used
here as it's all GCP infra? */
host: '10.1.2.3',
port: 6379
})
redisInstance.on('connect', () => {
console.log(`connected`);
});
redisInstance.on('error', (err) => {
console.log(`Connection error ${err}`);
});
El error en el registro es
Error de conexión Error: falló la conexión de Redis a 10.1.2.3:6379 - conecte ETIMEDOUT 10.1.2.3:637
He mirado aGoogle Cloud Function no se puede conectar a Redis pero no es lo suficientemente específico sobre las opciones al configurar una regla.
Lo que he probadoIntenté configurar una regla de firewall con esta configuración:
ingrespor defecto de la re filtro de origen: mi cuenta de servicio firebase protocolos / puertos: todostargets: todosSolo una nota sobre la cuenta de servicio:
creado por Firebasetiene elEdito rol en IAMe sabe que @ funciona con BigQuery y otros servicios de Firebase desde mis activadores de FirebaseEsta misma regla de firewall ha estado en vigencia durante unas horas, y también he redistribuido el gatillo que prueba Redis, pero aún obteniendo ETIMEDOUT
ACTUALIZACIONES 2018-06-25 mañanaLlamé a GCP Gold y el problema no es obvio para el operador, por lo que abrirán un caso, investigarán y dejarán algunas notas.
2018-06-25 tardeUtilizando una regla de firewall permisiva (fuente0.0.0.0/0
, destino "todos los objetivos") y la conexión a la dirección IP externa de la instancia de Redis funciona (¡por supuesto!). Sin embargo, mencioné muchas veces en la llamada telefónica que no quiero que la instancia de Redis esté abierta a Internet, y si hay algún tipo de solución que implique un puente de red / VPN para poder conectarme a10.x.x.x
dirección de la función de nube.
El operador dijo que me contactarán en 2 días.
2018-06-25 poco más tarde en la tardeHe respondido que no parece ser posible para conectarse a una IP interna de Compute Engine desde una función en la nube.