Eve REST Api Server на Azure HTTP-подключении - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь развернуть сервер на 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. Это приложение также отлично работает, когда все работает локально.

...