Я пытаюсь развернуть сервер на Azure для предоставления RESTful API. Я настроил виртуальную машину, развернул приведенный ниже код, но после запуска приложения в облаке мои HTTP-запросы зависают.
У меня есть этот код для приложения
from eve import Eve
import logging
import logging.handlers
def log_every_get(resource, request, payload):
# custom INFO-level message is sent to the log file
app.logger.info('GET Processed')
app = Eve()
app.on_post_GET += log_every_get
if __name__ == '__main__':
# enable logging to 'app.log' file
handler = logging.handlers.RotatingFileHandler('app.log', maxBytes=10240, backupCount=5)
# set a custom log format, and add request
# metadata to each log line
handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)s: %(message)s '
'[in %(filename)s:%(lineno)d] -- ip: %(clientip)s, '
'url: %(url)s, method:%(method)s'))
# the default log level is set to WARNING, so
# we have to explictly set the logging level
# to INFO to get our custom message logged.
app.logger.setLevel(logging.INFO)
# append the handler to the default application logger
app.logger.addHandler(handler)
app.run(port=80, debug=True)
с этот файл settings.py
DOMAIN = {'people': {}}
# Please note that MONGO_HOST and MONGO_PORT could very well be left
# out as they already default to a bare bones local 'mongod' instance.
MONGO_HOST = 'localhost'
MONGO_PORT = 27017
# Skip this block if your db has no auth. But it really should.
# MONGO_USERNAME = '<your username>'
# MONGO_PASSWORD = '<your password>'
# Name of the database on which the user can be authenticated,
# needed if --auth mode is enabled.
# MONGO_AUTH_SOURCE = '<dbname>'
MONGO_DBNAME = 'DBNAME'
RESOURCE_METHODS = ['GET']
ITEM_METHODS = ['GET']
ALLOW_UNKNOWN = True
SERVER_NAME = None
Я также внесен в белый список HTTP-порта 80 для группы сетевой безопасности виртуальной машины на Azure. Я действительно не знаю, что еще делать. Когда я отправляю запрос GET, используя Почтальон, на http://VM.PUBLIC.IP/people, я получаю ответ «Не удалось получить ответ». Так что по какой-то причине запрос никогда не попадает в приложение. Возможно, это простая вещь, но я новичок во всем, что использую здесь, кроме Python. Это приложение также отлично работает, когда все работает локально.