Подключиться к redis из Cloud Run локально
Я создаю локальные облачные сервисы с плагином Cloud Code для Intellij (PyCharm), но локально развернутый сервис не может подключиться к экземпляру redis, запущенному в Docker:
redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.
Я могу подключиться к локально запущенному экземпляру Redis из оболочки python, это просто служба облачного запуска, работающая в minikube / docker, которая, похоже, не может подключиться к ней.
Есть идеи?
1 ответ
Если вы проверяете сеть Docker, используя:
docker network list
Вы увидите сеть под названием
cloud-run-dev-internal
. Вам необходимо подключить контейнер Redis к этой сети. Для этого запустите эту команду (в этой инструкции предполагается, что имя вашего контейнера - some-redis):
docker network connect cloud-run-dev-internal some-redis
Дважды проверьте, что ваш контейнер подключен к сети:
docker network inspect cloud-run-dev-internal
Затем подключитесь к хосту Redis, используя имя контейнера:
import redis
...
redis_host = os.environ.get('REDISHOST', 'some-redis')
redis_port = int(os.environ.get('REDISPORT', 6379))
redis_client = redis.StrictRedis(host=redis_host, port=redis_port)