Quelle est la meilleure façon d'accéder à Memorystore à partir de machines locales pendant le développement? Y a-t-il quelque chose comme Cloud SQL Proxy que je peux utiliser pour configurer un tunnel?
Vous pouvez faire tourner une instance Compute Engine et utiliser la redirection de port pour vous connecter à votre machine Redis.
Par exemple, si votre machine Redis a l'adresse IP interne 10.0.0.3, vous feriez:
gcloud compute instances create redis-forwarder --machine-type=f1-micro
gcloud compute ssh redis-forwarder -- -N -L 6379:10.0.0.3:6379
Tant que vous gardez le tunnel ssh ouvert, vous pouvez vous connecter à localhost: 6379
J'ai créé un VM sur Google Cloud
gcloud compute instances create redis-forwarder --machine-type=f1-micro
puis ssh dedans et installé haproxy
Sudo su
apt-get install haproxy
puis mis à jour le fichier de configuration
/etc/haproxy/haproxy.cfg
....existing file contents
frontend redis_frontend
bind *:6379
mode tcp
option tcplog
timeout client 1m
default_backend redis_backend
backend redis_backend
mode tcp
option tcplog
option log-health-checks
option redispatch
log global
balance roundrobin
timeout connect 10s
timeout server 1m
server redis_server [MEMORYSTORE IP]:6379 check
redémarrer haproxy
/etc/init.d/haproxy restart
J'ai ensuite pu me connecter au magasin de mémoire depuis ma machine locale pour le développement
Vous pouvez faire tourner une instance Compute Engine et configurer un haproxy en utilisant l'image docker suivante image docker haproxy puis haproxy transmettra vos demandes tcp à memorystore.
Par exemple, je veux accéder à l'instance de memorystore avec l'ip 10.0.0.12, j'ai donc ajouté les configurations de haproxy suivantes:
frontend redis_frontend
bind *:6379
mode tcp
option tcplog
timeout client 1m
default_backend redis_backend
backend redis_backend
mode tcp
option tcplog
option log-health-checks
option redispatch
log global
balance roundrobin
timeout connect 10s
timeout server 1m
server redis_server 10.0.0.12:6379 check
Alors maintenant, vous pouvez accéder au memorystore depuis votre machine locale en utilisant la commande suivante:
redis-cli -h <your-haproxy-public-ipaddress> -p 6379
Remarque: remplacez par votre adresse IP haproxy réelle.
J'espère que cela peut vous aider à résoudre votre problème.