A função do Google Cloud atinge o tempo limite ao conectar-se ao Redis no IP interno do Compute Engine
Eu criei uma instância Redis usandohttps://console.cloud.google.com/launcher/details/bitnami-launchpad/redis-ha
e a interface de rede é:
Estou tentando conectar-me a essa instância Redis a partir de um gatilho Firebase.
A questão é: de que regra de firewall eu preciso para conectar uma função de nuvem a uma instância de computação?
Forneça o máximo de detalhes possível, p. Intervalos de IP, entrada / saída, etc., e se eu tenho que conectar o cliente Redis à instância no IP interno ou no IP externo.
Este é o 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}`);
});
O erro no log é
Erro de conexão Erro: falha na conexão do Redis com 10.1.2.3:6379 - conecte ETIMEDOUT 10.1.2.3:6379
Eu olheiO Google Cloud Function não pode se conectar ao Redis mas não é específico o suficiente sobre as opções ao configurar uma regra.
O que eu tenteiTentei configurar uma regra de firewall com estas configurações:
entradarede: padrãofiltro de origem: minha conta de serviço firebaseprotocolos / portas: todosalvos: todosApenas uma observação sobre a conta de serviço:
criado por Firebasetem oeditor papel no IAMé conhecido por funcionar com o BigQuery e outros serviços Firebase dos meus gatilhos do FirebaseEssa mesma regra de firewall já está em vigor há algumas horas e também reimplantei o gatilho que testa o Redis, mas ainda obtendo o ETIMEDOUT
ATUALIZAÇÕES25/06/2018 manhãLiguei para o suporte do GCP Gold e o problema não é óbvio para o operador, então eles abrem um caso, investigam e deixam algumas anotações.
25/06/2018 tardeUsando uma regra de firewall permissiva (origem0.0.0.0/0
, destino "todos os destinos") e a conexão com o endereço IP externo da instância Redis funciona (é claro!). No entanto, já mencionei várias vezes no telefonema que não quero que a instância do Redis seja aberta na Internet e se houver algum tipo de solução envolvendo uma ponte de rede / VPN para que eu possa conectar-me ao10.x.x.x
endereço da função Cloud.
O operador disse que voltará para mim em dois dias.
2018-06-25 pouco mais tardeEu respondi quenão parece ser possível para conectar-se a um IP interno do Compute Engine a partir de uma função de nuvem.