Quickstart: Een Python-app maken met behulp van Azure App Service in Linux

In deze quickstart implementeert u een Python-web-app op App Service op Linux, een uiterst schaalbare webhostingservice van Azure. Gebruik de lokale Azure-opdrachtregelinterface (CLI) op een Mac-, Linux- of Windows-computer om een voorbeeld te implementeren met behulp van deFlask- of Django-frameworks. De web-app die u configureert, maakt gebruik van App Service basislaag die een kleine kostenpost in uw Azure-abonnement met zich mee kan brengen.

Uw eerste omgeving instellen

  1. U moet beschikken over een Azure-account met een actief abonnement. Gratis een account maken
  2. Installeer Python 3.6 of hoger.
  3. Installeer de Azure CLI,waarmee u opdrachten in een shell kunt uitvoeren om Azure-resources in terichten en te configureren.

Open een terminalvenster en controleer of uw Python-versie 3.6 of hoger is:

python3 --version

Controleer of uw Azure CLI-versie 2.0.80 of hoger is:

az --version

Meld u vervolgens aan bij Azure via de CLI:

az login

Met deze opdracht wordt een browser geopend om uw referenties te verzamelen. Wanneer de opdracht is voltooid, wordt JSON-uitvoer weergegeven met informatie over uw abonnementen.

Zodra u bent aangemeld, kunt u Azure-opdrachten uitvoeren met de Azure CLI om te werken met resources in uw abonnement.

Ondervindt u problemen? Laat het ons weten.

Het voorbeeld klonen

Kloon de opslagplaats met voorbeelden met de volgende opdracht en ga dan naar de map met voorbeelden. (Installeer git als u nog geen git hebt.)

git clone https://github.com/Azure-Samples/python-docs-hello-world
git clone https://github.com/Azure-Samples/python-docs-hello-django

Het voorbeeld bevat framework-specifieke code die door Azure App Service wordt herkend bij het starten van de app. Zie Opstartprocessen van container voor meer informatie.

Ondervindt u problemen? Laat het ons weten.

De voorbeeldtoepassing uitvoeren

  1. Open de map python-docs-hello-world:

    cd python-docs-hello-world
    
  2. Maak een virtuele omgeving en installeer afhankelijkheden:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Als u een Windows-systeem gebruikt en de fout ' source ' wordt niet herkend als een interne of externe opdracht, moet u controleren of u in de Git Bash-shell werkt of de opdrachten gebruiken die worden weer gegeven op het tabblad cmd hierboven.

    Als u het foutbericht '[Errno 2] Bestand of map bestaat niet: 'requirements.txt'' krijgt, controleert u of u zich in de map python-docs-hello-world bevindt.

  3. Voer de ontwikkelaarsserver uit.

    flask run
    

    De server gaat er standaard vanuit dat de invoermodule van de app zich in app.py bevindt, zoals in het voorbeeld wordt gebruikt.

    Als u een andere modulenaam gebruikt, stelt u omgevingsvariabele FLASK_APP in op die naam.

    Als de fout 'Kan geen Flask-toepassing vinden. U hebt niet de omgevingsvariabele 'FLASK_APP' opgegeven en er is geen 'wsgi.py'- of 'app.py'-module gevonden in de huidige map.' optreedt, controleert u of u zich in de map python-docs-hello-world bevindt waarin het voorbeeld is opgenomen.

  4. Open een webbrowser en ga naar de voorbeeld-app op http://localhost:5000/. In de app wordt het bericht Hallo wereld weergegeven.

    Een Python-voorbeeld-app uitvoeren

  5. Druk in het terminalvenster op Ctrl+C om de ontwikkelingsserver af te sluiten.

  1. Open de map python-docs-hello-django:

    cd python-docs-hello-django
    
  2. Maak een virtuele omgeving en installeer afhankelijkheden:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Als u een Windows-systeem gebruikt en de fout ' source ' wordt niet herkend als een interne of externe opdracht, moet u controleren of u in de Git Bash-shell werkt of de opdrachten gebruiken die worden weer gegeven op het tabblad cmd hierboven.

    Als u het foutbericht '[Errno 2] Bestand of map bestaat niet: 'requirements.txt'' krijgt, controleert u of u zich in de map python-docs-hello-django bevindt.

  3. Voer de ontwikkelaarsserver uit.

    python manage.py runserver
    
  4. Open een webbrowser en ga naar de voorbeeld-app op http://localhost:8000/. In de app wordt het bericht Hallo wereld weergegeven.

    Een Python-voorbeeld-app uitvoeren

  5. Druk in het terminalvenster op Ctrl+C om de ontwikkelingsserver af te sluiten.

Ondervindt u problemen? Laat het ons weten.

Het voorbeeld implementeren

Implementeer de code in uw lokale map (python-docs-hello-world) met behulp van de az webapp up-opdracht:

az webapp up --sku B1 --name <app-name>
  • Als de az-opdracht niet wordt herkend, controleert u of de Azure CLI is geïnstalleerd volgens de beschrijving in Uw initiële omgeving instellen.
  • Als de webapp-opdracht niet wordt herkend, komt dat omdat uw Azure CLI-versie 2.0.80 of hoger is. Als dat niet zo is, installeert u de nieuwste versie.
  • Vervang <app_name> door een naam die in de volledige Azure-omgeving uniek is (geldige tekens zijn a-z, 0-9 en - ). Het is handig om een combinatie van uw bedrijfsnaam en een app-id te gebruiken.
  • Met het argument --sku B1 maakt u de web-app voor de prijscategorie Basic, waarvoor een kleine vergoeding per uur wordt gevraagd. Laat dit argument weg om een snellere Premium-laag te gebruiken.
  • U kunt eventueel het argument --location <location-name> toevoegen, waarbij <location_name> een beschikbare Azure-regio is. U kunt een lijst met toegestane regio's voor uw Azure-account ophalen door de az account list-locations-opdracht uit te voeren.
  • Als de fout 'Kan de runtimestack van uw app niet automatisch detecteren' wordt weergegeven, moet u controleren of u de opdracht uitvoert in de map python-docs-hello-world (Flask) of de map python-docs-hello-django (Django), die het bestand requirements.txt bevat. (Zie Problemen met automatische detectie oplossen met az webapp up (GitHub) voor meer informatie.)

Het volledig uitvoeren van de opdracht kan even duren. Terwijl de opdracht wordt uitgevoerd, krijgt u berichten over het maken van de resourcegroep, het App Service-plan en de hosting-app, het configureren van de logboekfunctie en het vervolgens uitvoeren van de ZIP-implementatie. Vervolgens krijgt u het volgende bericht: 'U kunt de app starten op http://<app-name>.azurewebsites.net'. Dit is de URL van de app op Azure.

Voorbeelduitvoer van de opdracht az webapp up

Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.

Notitie

Met de opdracht az webapp up worden de volgende acties uitgevoerd:

Bladeren naar de app

Blader naar de geïmplementeerde toepassing in uw webbrowser op de URL http://<app-name>.azurewebsites.net. Het kan een paar minuten duren voordat de app wordt gestart. Wacht dus een minuut en vernieuw de browser als u de pagina van een standaard-app ziet.

Met de Python-voorbeeldcode wordt een Linux-container uitgevoerd in App Service via een ingebouwde installatiekopie.

Een Python-voorbeeld-app uitvoeren in Azure

Gefeliciteerd! U hebt uw Python-app geïmplementeerd in App Service.

Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.

Updates opnieuw implementeren

In deze sectie brengt u een kleine codewijziging aan en implementeert u de code opnieuw in Azure. Met deze codewijziging wordt een print-instructie opgenomen waardoor logboekuitvoer wordt gegenereerd waarmee u in de volgende sectie gaat werken.

Open app.py in een editor en werk de functie hello bij zodat deze overeenkomt met de volgende code.

def hello():
    print("Handling request to home page.")
    return "Hello, Azure!"

Open hello/views.py in een editor en werk de functie hello bij zodat deze overeenkomt met de volgende code.

def hello(request):
    print("Handling request to home page.")
    return HttpResponse("Hello, Azure!")

Sla de wijzigingen op en implementeer de app opnieuw met de opdracht az webapp up:

az webapp up

Met deze opdracht worden waarden gebruikt die lokaal in de cache worden opgeslagen in het bestand .azure/config, met inbegrip van de app-naam, de resourcegroep en het App Service-plan.

Zodra de implementatie is voltooid, schakelt u terug naar het browservenster om http://<app-name>.azurewebsites.net te openen. Vernieuw de pagina. Als het goed is, wordt hier het volgende aangepast bericht weergegeven:

Een bijgewerkte Python-voorbeeld-app uitvoeren in Azure

Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.

Tip

Visual Studio Code biedt krachtige extensies voor Python en Azure App Service, waarmee het implementatieproces van Python-web-apps in App Service wordt vereenvoudigd. Zie Python-apps implementeren in App Service vanuit Visual Studio Code voor meer informatie.

Logboeken streamen

U hebt toegang tot de consolelogboeken die zijn gegenereerd vanuit de app en de container waarin deze wordt uitgevoerd. Logboeken bevatten uitvoer die wordt gegenereerd met behulp van print-instructies.

Als u logboeken wilt streamen, voert u de opdracht az webapp log tail uit:

az webapp log tail

U kunt ook parameter --logs opnemen door middel van opdracht az webapp up, zodat tijdens de implementatie de logboekstroom automatisch wordt geopend.

Vernieuw de app in de browser om consolelogboeken te genereren. Deze omvatten berichten waarin HTTP-aanvragen voor de app worden beschreven. Als er niet direct uitvoer wordt weergegeven, probeert u het over 30 seconden nog eens.

U kunt ook de logboekbestanden van de browser inspecteren op https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Als u het streamen van logboeken op een bepaald moment wilt stoppen, drukt u in de terminal op Ctrl+C.

Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.

De Azure-app beheren

Ga naar Azure Portal om de app te beheren die u hebt gemaakt. Zoek en selecteer App Services.

Naar App Services navigeren in Azure Portal

Selecteer de naam van uw Azure-app.

Naar uw Python-app in App Services navigeren in Azure Portal

Wanneer u de app selecteert, wordt de pagina Overzicht van deze app weergegeven. Hier kunt u algemene beheertaken uitvoeren, zoals bladeren, stoppen, starten, opnieuw starten en verwijderen.

Uw Python-app beheren op de pagina Overzicht in Azure Portal

Het App Service-menu biedt verschillende pagina's voor het configureren van uw app.

Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.

Resources opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. De naam van de resourcegroep lijkt op 'appsvc_rg_Linux_CentralUS', afhankelijk van uw locatie. Als u de web-app blijvend uitvoert, worden er enige kosten in rekening gebracht (zie Prijzen voor App Service).

Als u denkt dat u deze resources niet meer gaat gebruiken, verwijdert u de resourcegroep door de volgende opdracht uit te voeren:

az group delete --no-wait

Voor de opdracht wordt de resourcegroepnaam gebruikt die in het bestand .azure/config in de cache is opgeslagen.

Met argument --no-wait kan de opdracht worden geretourneerd voordat de bewerking wordt voltooid.

Ondervindt u problemen? Laat het ons weten.

Volgende stappen