Distribuire un'app Web Python in una macchina virtuale nell'hub Azure StackDeploy a Python web app to a VM in Azure Stack Hub

È possibile creare una macchina virtuale per ospitare l'app Web Python nell'hub Azure Stack.You can create a VM to host your Python web app in Azure Stack Hub. In questo articolo si configura un server, si configura il server per ospitare l'app Web Python e quindi si distribuisce l'app nell'hub Azure Stack.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.

Questo articolo usa Python 3. x che esegue Flask in un ambiente virtuale in un server nginx.This article uses Python 3.x running Flask in a virtual environment on an Nginx server.

Creare una macchina virtualeCreate a VM

  1. Configurare la macchina virtuale nell'hub Azure Stack seguendo le istruzioni in distribuire una macchina virtuale Linux per ospitare un'app Web nell'hub Azure stack.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. Nel riquadro rete VM verificare che le seguenti porte siano accessibili:In the VM network pane, make sure that the following ports are accessible:

    PortaPort ProtocolloProtocol DescrizioneDescription
    8080 HTTPHTTP Hypertext Transfer Protocol (HTTP) è il protocollo usato per fornire pagine Web dai server.Hypertext Transfer Protocol (HTTP) is the protocol that's used to deliver webpages from servers. I client si connettono tramite HTTP con un nome DNS o un indirizzo IP.Clients connect via HTTP with a DNS name or IP address.
    443443 HTTPSHTTPS Hypertext Transfer Protocol Secure (HTTPS) è una versione protetta di HTTP che richiede un certificato di sicurezza e consente la trasmissione crittografata delle informazioni.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) è un protocollo di rete crittografato per le comunicazioni sicure.Secure Shell (SSH) is an encrypted network protocol for secure communications. Usare questa connessione con un client SSH per configurare la macchina virtuale e distribuire l'app.You use this connection with an SSH client to configure the VM and deploy the app.
    33893389 RDPRDP facoltativo.Optional. Il Remote Desktop Protocol (RDP) consente a una connessione Desktop remoto di usare un'interfaccia utente grafica nel computer.The Remote Desktop Protocol (RDP) allows a remote desktop connection to use a graphic user interface on your machine.
    5000, 80005000, 8000 PersonalizzatoCustom Porte utilizzate dal framework Web Flask in fase di sviluppo.The ports that are used by the Flask web framework in development. Per un server di produzione, il traffico viene instradato a 80 e 443.For a production server, you route your traffic through 80 and 443.

Installare PythonInstall Python

  1. Connettersi alla macchina virtuale usando il client SSH.Connect to your VM by using your SSH client. Per istruzioni, vedere connettersi tramite SSH con Putty.For instructions, see Connect via SSH with PuTTy.

  2. Al prompt di bash nella macchina virtuale, immettere il comando seguente:At your bash prompt on your VM, enter the following command:

    sudo apt-get -y install python3 python3-venv python3-dev
    
  3. Convalidare l'installazione.Validate your installation. Quando si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente:While you're still connected to your VM in your SSH session, enter the following command:

        python -version
    
  4. Installare nginx, un server Web leggero.Install Nginx, a lightweight web server. Quando si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente:While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install nginx git
    
  5. Installare Git, un controllo della versione ampiamente distribuito e un sistema di gestione del codice sorgente (SCM).Install Git, a widely distributed version control and source code management (SCM) system. Quando si è ancora connessi alla macchina virtuale nella sessione SSH, immettere il comando seguente:While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install git
    

Distribuire ed eseguire l'appDeploy and run the app

  1. Configurare il repository git nella macchina virtuale.Set up your Git repository on the VM. Quando si è ancora connessi alla macchina virtuale nella sessione SSH, immettere i comandi seguenti: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. Creare un ambiente virtuale e popolarlo con tutte le dipendenze del pacchetto.Create a virtual environment, and populate it with all the package dependencies. Quando si è ancora connessi alla macchina virtuale nella sessione SSH, immettere i comandi seguenti: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. Accedere al nuovo server.Go to your new server. Verrà visualizzata l'applicazione Web in esecuzione.You should see your running web application.

       http://yourhostname.cloudapp.net:5000
    

Aggiornare il serverUpdate your server

  1. Connettersi alla macchina virtuale nella sessione SSH.Connect to your VM in your SSH session. Arrestare il server digitando CTRL + C.Stop the server by typing Ctrl+C.

  2. Immettere i comandi seguenti:Enter the following commands:

    deactivate
    open the git repo
    git pull
    
  3. Attivare l'ambiente virtuale e avviare l'app:Activate the virtual environment and start the app:

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

Passaggi successiviNext steps