Перенаправление развертывания Azure (Неверный вход в систему. Повторите попытку.) - PullRequest
0 голосов
/ 16 февраля 2019

Я развернул базовую версию приложения Flask Appbuilder на Azure по URL-адресу: URL-адрес сайта .Логин администратора был создан с использованием консоли Kudu с ID в качестве администратора и паролем в качестве администратора. Логин продолжает перенаправлять на себя с «Неверный логин. Пожалуйста, попробуйте еще раз».ошибка, однако пользователь существует в самом файле app.db.Перенаправление не создает никаких журналов в Azure.

Error portion and log

У нас есть важное развертывание, любые предложения по его решению приветствуются.

Спасибо

Среда

Версия Flask-Appbuilder: последняя

1 Ответ

0 голосов
/ 22 февраля 2019

Похоже, что ваше приложение Python, созданное flask-appbuilder, было развернуто в Azure WebApp для Windows, но не работает.

Мои ответы на два существующих SO потока Приложение Hosting Flask (Python)выдает ошибку CGI и API хостинга Flask (python) в API Azure .

Я попытался создать демонстрационную версию с помощью flask-appbuilder в Python 3 и развернуть ее в Azure WebApp для Windows, то работает нормально.Ниже приведены мои шаги, к которым вы можете обратиться.

  1. Я создаю виртуальную среду для этой демонстрации с помощью приведенных ниже команд на моем локальном компьютере, на которых я установил Python 3 runtime и virtualenvчерез pip install virtualenv.

    virtualenv demo
    cd demo
    bin\activate.bat
    pip install flask-appbuilder
    fabmanager create-app # use `demoapp` as the `Your new app name` input
    cd demoapp
    
  2. Для создания администратора со всеми параметрами по умолчанию и простым паролем через fabmanager create-admin.

    Username [admin]:
    User first name [admin]:
    User last name [user]:
    Email [admin@fab.org]:
    Password:
    Repeat for confirmation:
    D:\<your path>\demo\demoapp\lib\python3.6\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
      'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
    2019-02-21 15:29:55,309:INFO:flask_appbuilder.security.sqla.manager:Security DB not found Creating all Models from Base
    2019-02-21 15:29:55,334:INFO:flask_appbuilder.security.sqla.manager:Security DB Created
    .......
    
  3. Я запускаюdemoapp через fabmanager run и он работает на моем локальном компьютере.
  4. Затем я перетаскиваю все свои каталоги и файлы demoapp, которые включают app.db, в мое Azure WebApp через консоль Kudo https://<your webapp name>.scm.azurewebsites.net/DebugConsole.
  5. Из-за отсутствия прямой установки зависимостей приложения для flash-appbuilder я установил среду выполнения Python 3 в Site extensions в Kudu, как показано на рисунке ниже.

    enter image description here

  6. Продолжение, я возвращаюсь в консоль Kudu и запускаю команды ниже для установки flask-appbuilder.

    D: \ home> cd python364x64 D: \ home \ python364x64> python -V Python 3.6.4 D: \ home \ python364x64> pip install flask-appbuilder Сборка flask-appbuilder Загрузка https://files.pythonhosted.org/packages/3a/b0/edb3e54241203266222c4863ae6eb30fd49f5d331a117b61f1801e8124da/Flask-AppBuilder-1.12.3.tar.gz (2,3 МБ) Требование уже выполнено: colorama <1,> = 0,3,9 в d: \ home \ python364x86 \ lib \ site-packages (из flask-appbuilder) (0.4.1) Требование уже выполнено:нажмите <8,> = 6,7 в d: \ home \ python364x86 \ lib \ site-packages (из flask-appbuilder) (7.0) ......

  7. Затем, чтобыПерейдите в site\wwwroot, чтобы создать и настроить файл web.config и изменить код в run.py.Есть два способа заставить его работать, как показано ниже.

    • Не используется WSGI.Порт по умолчанию Azure WebApp зависит от переменной среды HTTP_PLATFORM_PORT, которая устанавливается IIS в Azure.Поэтому нам нужно изменить параметр port метода app.run в run.py и настроить web.config, как показано ниже.

    Код run.py изменился, как показано ниже:

    from app import app
    import os
    
    app.run(port=int(os.environ['HTTP_PLATFORM_PORT']))
    

    И содержимое web.config, как показано ниже:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="PYTHONPATH" value="D:\home\site\wwwroot" />
            <add key="PATH" value="D:\home\python364x64;D:\home\python364x64\Scripts;%PATH%" />
        </appSettings>
        <system.webServer>
            <handlers>
                <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
            </handlers>
            <httpPlatform processPath="D:\home\python364x64\python.exe" arguments="D:\home\site\wwwroot\run.py --port %HTTP_PLATFORM_PORT%" stdoutLogEnabled="true" startupRetryCount='10'>
            </httpPlatform>
          </system.webServer>
    </configuration>
    
    • Использование сервера WSGI вместо рабочей среды.

    Код run.py, как показано ниже.

    from app import app
    
    app.run()
    

    И содержимое web.config, как показано ниже.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
         <appSettings>
              <add key="PYTHONPATH" value="D:\home\site\wwwroot" />
              <add key="WSGI_HANDLER" value="app.app" />
         </appSettings>
         <system.webServer>
              <handlers>
                  <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\python364x64\python.exe|D:\home\python364x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
              </handlers>
         </system.webServer>
    </configuration>
    

Работает через доступ https://<your app name>.azurewebsites.net enter image description here

...