Развертывание веб-приложения Python на виртуальной машине в Azure Stack HubDeploy a Python web app to a VM in Azure Stack Hub

Вы можете создать виртуальную машину для размещения веб-приложения Python в Azure Stack Hub.You can create a VM to host your Python web app in Azure Stack Hub. В этой статье объясняется, как настроить сервер для размещения веб-приложения Python, которое затем будет развернуто в Azure Stack Hub.In this article, you set up a server, configure the server to host your Python web app, and then deploy the app to Azure Stack Hub.

В рамках этой статьи для запуска Flask в виртуальной среде на сервере Nginx используется Python 3.x.This article uses Python 3.x running Flask in a virtual environment on an Nginx server.

Создание виртуальной машиныCreate a VM

  1. Настройте виртуальную машину в Azure Stack Hub, следуя инструкциям из статьи о развертывании виртуальной машины Linux для размещения веб-приложения в Azure Stack Hub.Set up your VM in Azure Stack Hub by following the instructions in Deploy a Linux VM to host a web app in Azure Stack Hub.

  2. В области сети виртуальных машин разрешите доступ к следующим портам:In the VM network pane, make sure that the following ports are accessible:

    ПортPort ПротоколProtocol ОписаниеDescription
    8080 HTTPHTTP HTTP — это протокол, который используется для доставки веб-страниц с серверов.Hypertext Transfer Protocol (HTTP) is the protocol that's used to deliver webpages from servers. Клиенты подключаются по протоколу HTTP, используя DNS-имя или IP-адрес.Clients connect via HTTP with a DNS name or IP address.
    443443 HTTPSHTTPS HTTPS — это безопасная версия протокола HTTP, которая использует сертификат безопасности и обеспечивает передачу данных в зашифрованном виде.Hypertext Transfer Protocol Secure (HTTPS) is a secure version of HTTP that requires a security certificate and allows for the encrypted transmission of information.
    2222 SSHSSH Secure Shell (SSH) — это сетевой протокол с применением шифрования для безопасного обмена данными.Secure Shell (SSH) is an encrypted network protocol for secure communications. Такое соединение используется клиентом SSH для настройки виртуальной машины и развертывания приложений.You use this connection with an SSH client to configure the VM and deploy the app.
    33893389 RDPRDP Необязательный параметр.Optional. Протокол RDP позволяет подключаться к удаленному рабочему столу, чтобы использовать графический пользовательский интерфейс на вашем компьютере.The Remote Desktop Protocol (RDP) allows a remote desktop connection to use a graphic user interface on your machine.
    5000, 80005000, 8000 ДругойCustom Порты, которые используются веб-платформой Flask при разработке.The ports that are used by the Flask web framework in development. Для рабочего сервера разработки вам нужно перенаправить трафик через порты 80 и 443.For a production server, you route your traffic through 80 and 443.

Установка PythonInstall Python

  1. Подключитесь к виртуальной машине c помощью клиента SSH.Connect to your VM by using your SSH client. Инструкции см. в разделе Подключение по протоколу SSH с помощью PuTTy.For instructions, see Connect via SSH with PuTTy.

  2. В командной строке bash на виртуальной машине введите следующую команду:At your bash prompt on your VM, enter the following command:

    sudo apt-get -y install python3 python3-venv python3-dev
    
  3. Проверьте установку.Validate your installation. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующую команду:While you're still connected to your VM in your SSH session, enter the following command:

        python -version
    
  4. Установите Nginx, упрощенную версию веб-сервера.Install Nginx, a lightweight web server. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующую команду:While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install nginx git
    
  5. Установите Git — широко распространенную систему управления версиями и исходным кодом.Install Git, a widely distributed version control and source code management (SCM) system. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующую команду:While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install git
    

Развертывание и запуск приложенияDeploy and run the app

  1. Настройте репозиторий Git на виртуальной машине.Set up your Git repository on the VM. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующие команды:While you're still connected to your VM in your SSH session, enter the following commands:

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. Создайте виртуальную среду и установите в ней все зависимости пакета.Create a virtual environment, and populate it with all the package dependencies. Не прерывая подключение к виртуальной машине в сеансе SSH, введите следующие команды:While you're still connected to your VM in your SSH session, enter the following commands:

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
    export FLASK_APP=application.py
    # export FLASK_DEBUG=1 
    flask run -h 0.0.0.0
    
  3. Перейдите на новый сервер.Go to your new server. Вы увидите запущенное веб-приложение.You should see your running web application.

       http://yourhostname.cloudapp.net:5000
    

Обновление сервераUpdate your server

  1. Подключитесь к своей виртуальной машине в сеансе SSH.Connect to your VM in your SSH session. Остановите работу сервера, нажав комбинацию клавиш CTRL+C.Stop the server by typing Ctrl+C.

  2. Введите следующие команды:Enter the following commands:

    deactivate
    open the git repo
    git pull
    
  3. Активируйте виртуальную среду и запустите приложение.Activate the virtual environment and start the app:

    source venv/bin/activate
    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

Дальнейшие действияNext steps