тайм-аут для доступа к фляге на Azure VM - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть приложение фляги, работающее в док-контейнере на виртуальной машине Azure.

Приложение работает на порте 5000, и я предоставляю этот порт докеру

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
57cdce7b5b2b        auto_ml2:latest     "/bin/sh -c 'python3…"   6 seconds ago       Up 5 seconds        0.0.0.0:5000->5000/tcp   serene_mcnulty
mlcontainers2@automl:/$ 

I 'я пытаюсь сделать следующий вызов API:

headers = {'content-type': 'application/json'}
url = "http://XX.XX.X.XX:5000/api/AutoML"
resp = requests.post(url,data=json.dumps(data), headers=headers )

Но через некоторое время я просто получаю сообщение об ошибке:

Failed to establish a new connection: [Errno 110] Connection timed out'))

Я подумал, что порт должен быть закрыт, поэтому ядобавил правило для него и открыл порты 80 и 5000-6000 и перезагрузил виртуальную машину

enter image description here

Но после этого я получаю ту же ошибку.

РЕДАКТИРОВАТЬ

Я проверил его с ВМ, там он отлично работает:

enter image description here

Ноиз удаленного запроса я получаю ту же ошибку:

enter image description here

1 Ответ

1 голос
/ 19 сентября 2019

Для этой проблемы, во-первых, вам нужно убедиться, что вы можете получить доступ к контейнеру из образа внутри виртуальной машины.Затем вам нужно добавить правило, чтобы разрешить все порты TCP, необходимые в NSG, которые связаны с виртуальной машиной.Наконец, вы можете получить доступ к серверу API вне виртуальной машины через публичный IP-адрес виртуальной машины с правильным портом, разрешенным в правиле NSG.

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