Snabbstart: Skapa en Python-app med Azure App Service på Linux

I den här snabbstarten distribuerar du en Python-webbapp till App Service på Linux, Azures mycket skalbara och självkorrigeringsbara webbvärdtjänst. Du använder det lokala Azure-kommandoradsgränssnittet (CLI) på en Mac-, Linux- eller Windows-dator för att distribuera ett exempel med antingen Flask- eller Django-ramverken. Den webbapp som du konfigurerar använder en grundläggande App Service som medför en liten kostnad i din Azure-prenumeration.

Konfigurera din första miljö

  1. Ha ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  2. Installera Python 3.6 eller senare.
  3. Installera Azure CLI som dukör kommandon med i alla gränssnitt för att etablera och konfigurera Azure-resurser.

Öppna ett terminalfönster och kontrollera att din Python-version är 3.6 eller senare:

python3 --version

Kontrollera att din Azure CLI-version är 2.0.80 eller senare:

az --version

Logga sedan in på Azure via CLI:

az login

Det här kommandot öppnar en webbläsare för att samla in dina autentiseringsuppgifter. När kommandot har avslutats visas JSON-utdata som innehåller information om dina prenumerationer.

När du har loggat in kan du köra Azure-kommandon med Azure CLI för att arbeta med resurser i din prenumeration.

Har du problem? Berätta för oss.

Klona exemplet

Klona exempeldatabasen med följande kommando och navigera till exempelmappen. (Installera git om du inte redan har git.)

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

Exemplet innehåller ramverksspecifik kod som Azure App Service identifierar när appen startas. Mer information finns i Startprocess för containrar.

Har du problem? Berätta för oss.

Kör exemplet

  1. Navigera till i mappen python-docs-hello-world:

    cd python-docs-hello-world
    
  2. Skapa en virtuell miljö och installera beroenden:

    # 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
    

    Om du använder ett Windows-system och se felet "källan kan inte identifieras som ett internt eller externt kommando", se till att du antingen kör i git bash-gränssnittet eller Använd de kommandon som visas på fliken cmd ovan.

    Om du stöter på "[Errno 2] Ingen sådan fil eller katalog: "requirements.txt"." kontrollerar du att du är i mappen python-docs-hello-world.

  3. Kör utvecklingsservern.

    flask run
    

    Som standard förutsätter servern att appens postmodul finns i app.py, som används i exemplet.

    Om du använder ett annat modulnamn anger du FLASK_APP miljövariabeln till det namnet.

    Om du stöter på felet "Det gick inte att hitta ett Flask-program. Du har inte ange miljövariabeln "FLASK_APP" och modulen "wsgi.py" eller "app.py" hittades inte i den aktuella katalogen." kontrollerar du att du är i mappen som innehåller python-docs-hello-world exemplet.

  4. Öppna en webbläsare och gå till exempelappen på http://localhost:5000/ . Appen visar meddelandet Hello, World!.

    Köra en Python-exempelapp lokalt

  5. Tryck på Ctrl C i terminalfönstret + för att avsluta utvecklingsservern.

  1. Navigera till mappen python-docs-hello-django:

    cd python-docs-hello-django
    
  2. Skapa en virtuell miljö och installera beroenden:

    # 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
    

    Om du använder ett Windows-system och se felet "källan kan inte identifieras som ett internt eller externt kommando", se till att du antingen kör i git bash-gränssnittet eller Använd de kommandon som visas på fliken cmd ovan.

    Om du stöter på "[Errno 2] Ingen sådan fil eller katalog: "requirements.txt"." kontrollerar du att du är i mappen python-docs-hello-django.

  3. Kör utvecklingsservern.

    python manage.py runserver
    
  4. Öppna en webbläsare och gå till exempelappen på http://localhost:8000/ . Appen visar meddelandet Hello, World!.

    Köra en Python-exempelapp lokalt

  5. Tryck på Ctrl C i terminalfönstret + för att avsluta utvecklingsservern.

Har du problem? Berätta för oss.

Distribuera exemplet

Distribuera koden i din lokala mapp (python-docs-hello-world) med hjälp av az webapp up kommandot :

az webapp up --sku B1 --name <app-name>
  • Om kommandot inte känns igen kontrollerar du att du har Installerat Azure CLI enligt az beskrivningen i Konfigurera din första miljö.
  • Om kommandot webapp inte känns igen, eftersom din Azure CLI-version är 2.0.80 eller senare. Om inte installerar du den senaste versionen.
  • Ersätt <app_name> med ett namn som är unikt för hela Azure ( giltiga tecken är ,a-z 0-9 och -). Ett bra mönster är att använda en kombination av företagets namn och en appidentifierare.
  • Argumentet --sku B1 skapar webbappen på prisnivån Basic, vilket medför en liten kostnad per timme. Utelämna det här argumentet för att använda en snabbare premiumnivå.
  • Du kan också inkludera argumentet där är --location <location-name> <location_name> en tillgänglig Azure-region. Du kan hämta en lista över tillåtna regioner för ditt Azure-konto genom att köra az account list-locations kommandot .
  • Om du ser felet "Det gick inte att automatiskt identifiera körningsstacken för din app" kontrollerar du att du kör kommandot i mappen python-docs-hello-world (Flask) eller mappen python-docs-hello-django (Django) som innehåller requirements.txt-filen. (Se Felsöka problem med automatisk identifiering med az webapp up (GitHub).)

Det kan ta några minuter att slutföra kommandot. När den körs får du meddelanden om att skapa resursgruppen, App Service plan värdappen, konfigurera loggning och sedan utföra ZIP-distribution. Sedan visas meddelandet "Du kan starta appen på http:// < appnamn .azurewebsites.net", som är > appens URL på Azure.

Exempel på utdata från kommandot az webapp up

Har du problem? Läs först i felsökningsguiden,annars kan du berätta för oss.

Anteckning

Kommandot az webapp up utför följande åtgärder:

Bläddra till appen

Bläddra till det distribuerade programmet i webbläsaren på URL:en http://<app-name>.azurewebsites.net . Det kan ta någon minut innan appen startar, så om du ser en standardappsida väntar du en minut och uppdaterar webbläsaren.

Python-exempelkoden kör en Linux-container i App Service med hjälp av en inbyggd avbildning.

Köra en Python-exempelapp i Azure

Grattis! Du har distribuerat Python-appen till App Service.

Har du problem? Läs först i felsökningsguiden,annars kan du berätta för oss.

Distribuera om uppdateringar

I det här avsnittet gör du en liten kodändring och distribuerar sedan om koden till Azure. Kodändringen innehåller en print -instruktion för att generera loggningsutdata som du arbetar med i nästa avsnitt.

Öppna app.py i ett redigeringsprogram och uppdatera hello funktionen så att den matchar följande kod.

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

Öppna hello/views.py i ett redigeringsprogram och uppdatera hello funktionen så att den matchar följande kod.

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

Spara ändringarna och distribuera sedan appen igen med az webapp up kommandot igen:

az webapp up

Det här kommandot använder värden som cachelagras lokalt i .azure/config-filen, inklusive appnamn, resursgrupp och App Service plan.

När distributionen är klar växlar du tillbaka till webbläsarfönstret och öppnar http://<app-name>.azurewebsites.net . Uppdatera sidan, som ska visa det ändrade meddelandet:

Köra en uppdaterad Python-exempelapp i Azure

Har du problem? Läs först i felsökningsguiden,annars kan du berätta för oss.

Tips

Visual Studio Code innehåller kraftfulla tillägg för Python och Azure App Service, vilket förenklar processen med att distribuera Python-webbappar till App Service. Mer information finns i Distribuera Python-appar till App Service från Visual Studio Code.

Strömningsloggar

Du kan komma åt konsolloggarna som genereras inifrån appen och containern där den körs. Loggar innehåller alla utdata som genereras med hjälp av print instruktioner.

Om du vill strömma loggar kör du kommandot az webapp log tail:

az webapp log tail

Du kan också inkludera --logs parametern med kommandot az webapp up then för att automatiskt öppna loggströmmen vid distributionen.

Uppdatera appen i webbläsaren för att generera konsolloggar, som innehåller meddelanden som beskriver HTTP-begäranden till appen. Om inga utdata visas omedelbart kan du försöka igen om 30 sekunder.

Du kan även granska loggfilerna från din webbläsare via https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Om du vill stoppa loggströmningen när som helst trycker du + på Ctrl C i terminalen.

Har du problem? Gå först till felsökningsguiden,annars kan du berätta för oss.

Hantera Azure-appen

Gå till Azure-portalen för att hantera den app som du skapade. Sök efter och välj App Services.

Gå till App Services i Azure Portal

Välj namnet på din Azure-app.

Gå till Python-appen i App Services i Azure Portal

När du väljer appen öppnas sidan Översikt där du kan utföra grundläggande hanteringsuppgifter som att bläddra, stoppa, starta, starta om och ta bort.

Hantera Python-appen på översiktssidan i Azure Portal

Menyn App Service innehåller olika sidor för att konfigurera din app.

Har du problem? Gå först till felsökningsguiden,annars kan du berätta för oss.

Rensa resurser

I de föregående stegen skapade du Azure-resurser i en resursgrupp. Resursgruppen har ett namn som "appsvc_rg_Linux_CentralUS" beroende på din plats. Om du fortsätter att köra webbappen medför det vissa löpande kostnader (se App Service prissättning).

Om du inte tror att du behöver dessa resurser i framtiden tar du bort resursgruppen genom att köra följande kommando:

az group delete --no-wait

Kommandot använder resursgruppens namn som cachelagras i .azure/config-filen.

Argumentet --no-wait gör att kommandot kan returneras innan åtgärden har slutförts.

Har du problem? Berätta för oss.

Nästa steg