Подключение службы приложений Azure к MongoDB Atlas через пиринговое соединение vnet - PullRequest
0 голосов
/ 24 января 2020

Итак, у меня есть служба приложений Azure, и я хочу, чтобы она могла подключаться к атласу mon go db. Для нашей настройки Atlas существует одноранговое соединение между нашей управляемой средой на azure (и vnet, в которой все это находится) и нашим кластером mon go db.

Мон go кластер настроен с «Подключиться только через пиринг», который мы не можем изменить. Это означает, что мы не можем подключиться к нашей базе данных с любым старым IPL-адресом * publi c. Он должен быть получен с vnet, с которым он работает. VMS (изнутри peered vnet) могут получить доступ к БД без проблем.

Я попытался с помощью службы приложений подключиться к БД с помощью той же строки подключения, которая работала для виртуальной машины. Он вернул ошибку:

java.net.ConnectException: Connection refused (Connection refused)}}, {address=MYMONGOADDRESS.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused (Connection refused)}}]

Это ожидается по причинам, указанным выше. Однако я настроил интеграцию vnet для службы приложений . Я создал выделенный su bnet, как описано для службы приложений, и внес в белый список диапазон ip в mon go. Однако я не смог подключиться к БД после использования этой vnet интеграции. Я также получил очень похожую ошибку, но немного другую.

{java.net.SocketTimeoutException: connect timed out}}, {address=MYMONGOADDRESS.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}]

Когда вместо соединения отказано, я не получаю тайм-аут соединения. Я повторил это несколько раз и получил один и тот же результат.

Кто-нибудь знает, почему эти ошибки различаются, и помогает в подключении к БД из моей службы приложений azure?

1 Ответ

0 голосов
/ 25 января 2020

Есть ли брандмауэр или группа безопасности сети? Что такое статус пиринга в сети? Если он показывает «инициировано», то это означает, что оно не было завершено. Сетевой пиринг должен выполняться на каждом конце. Если он показывает «подключен», то я бы искал брандмауэр или группы безопасности сети.

Смотрите это https://docs.atlas.mongodb.com/security-vpc-peering/#vpc -peering

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...