Как получить доступ к кластеру Redis из функции (Cloud Functions)?

В Яндекс Облаке созданы кластер Redis и виртуальная машина. С виртуальной машины подключаюсь к Redis через redis-cli и из python как-то так:

import redis
r = redis.StrictRedis(host='host', port='port', password='password')
r.get('key')

Хочу, чтобы этот же код работал внутри функции (Yandex Cloud Functions). Однако при тестировании функция просто завершает работу по таймауту.

С чем такое поведение может быть связано? Доступно ли вообще подключение из функций?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nik_the_spirit
Это связано с тем, что функции разворачиваются в сети и которой нет доступа до ваших виртуальных сетей. Т.е. если вы создали кластер Redis без внешнего доступа, то вы не сможете достучаться до него из функций.
Есть вариант создать кластер с внешним доступом, для этого нужно включить в нем TLS при создании, а это в свою очередь требует использования версии редиса начиная с 6. Вот здесь пример на вкладке Подключение с SSL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы