Dela via


Översikt över Python Container Apps i Azure

Den här artikeln beskriver hur du tar ett Python-projekt, till exempel ett webbprogram, och distribuerar det som en Docker-container i Azure. Den omfattar det allmänna arbetsflödet för containerisering, Azure-distributionsalternativ för containrar och Python-specifika containerkonfigurationer i Azure. Att skapa och distribuera Docker-containrar i Azure följer en standardprocess mellan olika språk, med Python-specifika konfigurationer i Dockerfile, requirements.txtoch inställningar för webbramverk som Django, Flask och FastAPI.

Scenarier för containerarbetsflöde

För utveckling av Python-containrar beskrivs några vanliga arbetsflöden för att flytta från kod till container i följande tabell.

Scenarium Beskrivning Arbetsflöde
Dev Skapa Python Docker-avbildningar lokalt i utvecklingsmiljön. Kod: Klona din appkod lokalt med Git (med Docker installerat).

Build: Använd Docker CLI, VS Code (med tillägg), PyCharm (med Docker-plugin-program). Beskrivs i avsnittet Arbeta med Python Docker-avbildningar och containrar.

Test: Kör och testa containern lokalt.

Push: Skicka avbildningen till ett containerregister som Azure Container Registry, Docker Hub eller ett privat register.

Distribuera: Distribuera containern från registret till en Azure-tjänst.
Hybrid Skapa Docker-avbildningar i Azure, men initiera processen från din lokala miljö. Kod: Klona koden lokalt (krävs inte för att Docker ska installeras).

Skapa: Om du vill utlösa byggen i Azure använder du VS Code (med fjärrtillägg) eller Azure CLI.

Push: Skicka den skapade avbildningen till Azure Container Registry.

Distribuera: Distribuera containern från registret till en Azure-tjänst.
Blått Använd Azure Cloud Shell för att skapa och distribuera containrar helt i molnet. Kod: Klona GitHub-lagringsplatsen i Azure Cloud Shell.

Build: Använd Azure CLI eller Docker CLI i Cloud Shell.

Push: Skicka avbildningen till ett register som Azure Container Registry, Docker Hub eller ett privat register.

Distribuera: Distribuera containern från registret till en Azure-tjänst.

Slutmålet med dessa arbetsflöden är att ha en container som körs i en av De Azure-resurser som stöder Docker-containrar enligt listan i nästa avsnitt.

En utvecklingsmiljö kan vara:

Alternativ för distributionscontainer i Azure

Python-containerappar stöds i följande tjänster.

Tjänster Beskrivning
Webbapplikation för containrar Azure App Service är en fullständigt hanterad värdplattform för containerbaserade webbprogram, inklusive webbplatser och webb-API:er. Den stöder skalbara distributioner och integreras sömlöst med CI/CD-arbetsflöden med Docker Hub, Azure Container Registry och GitHub. Den här tjänsten är perfekt för utvecklare som vill ha en enkel och effektiv väg för att distribuera containerbaserade appar, samtidigt som de kan dra nytta av de fullständiga funktionerna i Azure App Service-plattformen. Genom att paketera ditt program och alla dess beroenden i en enda distribuerad container får du både portabilitet och enkel hantering – utan att behöva hantera infrastrukturen.

Exempel: Distribuera en Flask- eller FastPI-webbapp i Azure App Service.
Azure Container Apps (ACA) Azure Container Apps (ACA) är en fullständigt hanterad serverlös containertjänst som drivs av Kubernetes och tekniker med öppen källkod som Dapr, KEDA och envoy. Designen innehåller branschens bästa praxis och är optimerad för att köra containrar för allmänna ändamål. ACA abstraherar bort komplexiteten i att hantera en Kubernetes-infrastruktur – direkt åtkomst till Kubernetes-API:et krävs inte eller stöds inte. I stället erbjuder den programkonstruktioner på högre nivå, till exempel revisioner, skalning, certifikat och miljöer för att förenkla arbetsflöden för utveckling och distribution. Den här tjänsten är perfekt för utvecklingsteam som vill skapa och distribuera containerbaserade mikrotjänster med minimala driftkostnader, så att de kan fokusera på programlogik i stället för infrastrukturhantering.

Exempel: Distribuera en Flask- eller FastPI-webbapp i Azure Container Apps.
Azure Container Instances (ACI) Azure Container Instances (ACI) är ett serverlöst erbjudande som tillhandahåller en enda podd med Hyper-V isolerade containrar på begäran. Faktureringen baseras på den faktiska resursförbrukningen i stället för förallokerad infrastruktur, vilket gör den lämplig för kortvariga eller burstbara arbetsbelastningar. Till skillnad från andra containertjänster innehåller ACI inte inbyggt stöd för begrepp som skalning, belastningsutjämning eller TLS-certifikat. I stället fungerar den vanligtvis som ett grundläggande byggblock för containrar, ofta integrerat med Azure-tjänster som Azure Kubernetes Service (AKS) för orkestrering. ACI utmärker sig som ett enkelt val när abstraktioner på högre nivå och funktioner i Azure Container Apps inte behövs

Exempel: Skapa en containeravbildning för distribution till Azure Container Instances. (Självstudien är inte specifik för Python, men de begrepp som visas gäller för alla språk.)
Azure Kubernetes Service (AKS) Azure Kubernetes Service (AKS) är ett fullständigt hanterat Kubernetes-alternativ i Azure som ger dig fullständig kontroll över kubernetes-miljön. Det stöder direkt åtkomst till Kubernetes-API:et och kan köra valfri Kubernetes-standardarbetsbelastning. Det fullständiga klustret finns i din prenumeration, med klusterkonfigurationer och åtgärder inom din kontroll och ditt ansvar. ACI är perfekt för team som söker en fullständigt hanterad containerlösning, medan AKS ger dig fullständig kontroll över Kubernetes-klustret, vilket kräver att du hanterar konfigurationer, nätverk, skalning och åtgärder. Azure hanterar kontrollplanet och infrastrukturetablering, men den dagliga åtgärden och säkerheten i klustret ligger inom teamets kontroll. Den här tjänsten är perfekt för team som vill ha flexibiliteten och kraften i Kubernetes med den extra fördelen med Azures hanterade infrastruktur, samtidigt som du behåller fullständigt ägande över klustermiljön.

Exempel: Distribuera ett Azure Kubernetes Service-kluster med hjälp av Azure CLI.
Azure Functions Azure Functions erbjuder en händelsedriven, serverlös FaaS-plattform (Functions-as-a-Service) som gör att du kan köra små bitar av kod (funktioner) som svar på händelser – utan att hantera infrastrukturen. Azure Functions delar många egenskaper med Azure Container Apps kring skalning och integrering med händelser, men är optimerad för kortvariga funktioner som distribueras som antingen kod eller containrar. För team som vill utlösa exekveringen av funktioner vid händelser; till exempel för att ansluta till andra datakällor. Precis som Azure Container Apps stöder Azure Functions automatisk skalning och integrering med händelsekällor (till exempel HTTP-begäranden, meddelandeköer eller bloblagringsuppdateringar). Den här tjänsten är perfekt för team som skapar enkla, händelseutlösta arbetsflöden, till exempel bearbetning av filuppladdningar eller svar på databasändringar, i Python eller andra språk.

Exempel: Skapa en funktion i Linux med en anpassad container.

En mer detaljerad jämförelse av dessa tjänster finns i Jämföra containerappar med andra Azure-containeralternativ.

Virtuella miljöer och containrar

Virtuella miljöer i Python isolerar projektberoenden från Python-installationer på systemnivå, vilket säkerställer konsekvens mellan utvecklingsmiljöer. En virtuell miljö innehåller en egen isolerad Python-tolk, tillsammans med de bibliotek och skript som behövs för att köra den specifika projektkoden i den miljön. Beroenden för Python-projekt hanteras via filenrequirements.txt . Genom att ange beroenden i en requirements.txt fil kan utvecklare återskapa den exakta miljö som behövs för deras projekt. Den här metoden underlättar smidigare övergångar till containerbaserade distributioner som Azure App Service, där miljökonsekvens är avgörande för tillförlitliga programprestanda.

Tips/Råd

I containerbaserade Python-projekt är virtuella miljöer vanligtvis onödiga eftersom Docker-containrar tillhandahåller isolerade miljöer med sin egen Python-tolk och sina beroenden. Du kan dock använda virtuella miljöer för lokal utveckling eller testning. Om du vill hålla Docker-avbildningarna magra exkluderar du virtuella miljöer med hjälp av en .dockerignore-fil , vilket förhindrar att onödiga filer kopieras till avbildningen.

Du kan betrakta Docker-containrar som funktioner som liknar virtuella Python-miljöer , men med bredare fördelar när det gäller reproducerbarhet, isolering och portabilitet. Till skillnad från virtuella miljöer kan Docker-containrar köras konsekvent i olika operativsystem och miljöer, så länge en containerkörning är tillgänglig.

En Docker-container innehåller din Python-projektkod tillsammans med allt som behövs för att köras, till exempel beroenden, miljöinställningar och systembibliotek. För att skapa en container skapar du först en Docker-avbildning från projektkoden och konfigurationen och startar sedan en container, som är en körbar instans av avbildningen.

För containerisering av Python-projekt beskrivs nyckelfilerna i följande tabell:

Projektfil Beskrivning
requirements.txt Den här filen innehåller den slutgiltiga listan över Python-beroenden som behövs för ditt program. Docker använder den här listan under avbildningsprocessen för att installera alla nödvändiga paket. Detta säkerställer konsekvens mellan utvecklings- och distributionsmiljöer.
Dockerfile Den här filen innehåller instruktioner för att skapa python Docker-avbildningen, inklusive basavbildningsval, beroendeinstallation, kodkopiering och startkommandon för containrar. Den definierar den fullständiga körningsmiljön för ditt program. Mer information finns i avsnittet Dockerfile-instruktioner för Python.
.dockerignore Den här filen anger de filer och kataloger som ska undantas när innehåll kopieras till Docker-avbildningen COPY med kommandot i Dockerfile. Den här filen använder mönster som liknar .gitignore för att definiera undantag. .dockerignore-filen stöder undantagsmönster som liknar .gitignore-filer. Mer information finns i .dockerignore-filen.

Exkludering av filer hjälper till att skapa bildprestanda, men bör också användas för att undvika att lägga till känslig information i avbildningen där den kan inspekteras. Till exempel ska .dockerignore innehålla rader för att ignorera .env och .venv (virtuella miljöer).

Containerinställningar för webbramverk

Webbramverk binder vanligtvis till standardportar (till exempel 5 000 för Flask, 8 000 för FastAPI). När du distribuerar containrar till Azure-tjänster, till exempel Azure Container Instances, Azure Kubernetes Service (AKS) eller App Service for Containers, är det viktigt att du uttryckligen exponerar och konfigurerar containerns lyssnarport för att säkerställa korrekt routning av inkommande trafik. Genom att konfigurera rätt port ser du till att Azures infrastruktur kan dirigera begäranden till rätt slutpunkt i containern.

Webbramverk Hamn
Django 8 000
Flaska 5000 eller 5002
FastAPI (uvicorn) 8000 eller 80

I följande tabell visas hur du ställer in porten för olika Azure-containerlösningar.

Azure-containerlösning Så här ställer du in webbappsport
Webbapp för containrar Som standard förutsätter App Service att din anpassade container lyssnar på port 80 eller port 8080. Om containern lyssnar på en annan port anger du appinställningen WEBSITES_PORT i App Service-appen. Mer information finns i Konfigurera en anpassad container för Azure App Service.
Azure Container-appar Med Azure Container Apps kan du exponera din containerapp för den offentliga webben, för ditt virtuella nätverk eller för andra containerappar i samma miljö genom att aktivera ingress. Ange ingressen targetPort till den port som containern lyssnar på för inkommande förfrågningar. Programmets ingressslutpunkt exponeras alltid på port 443. Mer information finns i Konfigurera HTTPS- eller TCP-ingress i Azure Container Apps.
Azure Container Instances, Azure Kubernetes Du definierar porten som appen lyssnar på när containern eller podden skapas. Containeravbildningen bör innehålla ett webbramverk, en programserver (till exempel gunicorn, uvicorn) och eventuellt en webbserver (till exempel nginx). I mer komplexa scenarier kan du dela upp ansvarsområden mellan två containrar – en för programservern och en annan för webbservern. I så fall exponerar webbservercontainern vanligtvis portarna 80 eller 443 för extern trafik.

Python Dockerfile

En Dockerfile är en textfil som innehåller instruktioner för att skapa en Docker-avbildning för ett Python-program. Den första instruktionen anger vanligtvis basavbildningen som ska startas från. Efterföljande instruktioner beskriver sedan åtgärder som att installera nödvändig programvara, kopiera programfiler och konfigurera miljön för att skapa en runnable-avbildning. Följande tabell innehåller Python-specifika exempel för vanliga Dockerfile-instruktioner.

Instruktion Avsikt Exempel
FRÅN Anger basavbildningen för efterföljande instruktioner. FROM python:3.9-slim
AVSLÖJA Meddelar Docker att containern lyssnar på en angiven port vid körning. EXPOSE 5000
KOPIA Kopierar filer eller kataloger från den angivna källan och lägger till dem i filsystemet för containern på den angivna målsökvägen. COPY . /app
SPRINGA Kör ett kommando i Docker-avbildningen. Till exempel, dra in beroenden. Kommandot körs en gång vid byggtiden. RUN python -m pip install -r requirements.txt
CMD Kommandot tillhandahåller standardvärdet för att köra en container. Det kan bara finnas en CMD-instruktion. CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Docker build-kommandot skapar Docker-avbildningar från en Dockerfile och en kontext. En byggkontext är den uppsättning filer som finns i den angivna sökvägen eller URL:en. Vanligtvis skapar du en avbildning från python-projektets rot och sökvägen till build-kommandot är "." som du ser i följande exempel.

docker build --rm --pull  --file "Dockerfile"  --tag "mywebapp:latest"  .

Byggprocessen kan referera till någon av filerna i kontexten. Ditt bygge kan till exempel använda en COPY-instruktion för att referera till en fil i kontexten. Här är ett exempel på en Dockerfile för ett Python-projekt med Flask-ramverket :

FROM python:3.9-slim

EXPOSE 5000

# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]

Du kan skapa en Dockerfile för hand eller skapa den automatiskt med VS Code och Docker-tillägget. Mer information finns i Generera Docker-filer.

Docker Build-kommandot är en del av Docker CLI. När du använder IDE:er som VS Code eller PyCharm anropar användargränssnittskommandona för att arbeta med Docker-avbildningar build-kommandot åt dig och automatiserar att ange alternativ.

Arbeta med Python Docker-avbildningar och containrar

VS Code och PyCharm

Integrerade utvecklingsmiljöer (IDE:er) som Visual Studio Code (VS Code) och PyCharm effektiviserar python-containerutvecklingen genom att integrera Docker-uppgifter i arbetsflödet. Med tillägg eller plugin-program gör dessa IDE:er det enklare att skapa Docker-avbildningar, köra containrar och distribuera till Azure-tjänster som App Service eller Container Instances. Här är några av de saker du kan göra med VS Code och PyCharm.

  • Ladda ned och skapa Docker-avbildningar.

    • Skapa avbildningar i utvecklingsmiljön.
    • Skapa Docker-avbildningar i Azure utan Docker installerat i utvecklingsmiljön. (För PyCharm använder du Azure CLI för att skapa avbildningar i Azure.)
  • Skapa och kör Docker-containrar från en befintlig avbildning, en hämtad avbildning eller direkt från en Dockerfile.

  • Kör multicontainer-program med Docker Compose.

  • Ansluta och arbeta med containerregister som Docker Hub, GitLab, JetBrains Space, Docker V2 och andra docker-register med egen värd.

  • (endast VS Code) Lägg till en Dockerfile och Docker compose-filer som är skräddarsydda för ditt Python-projekt.

Använd följande steg för att konfigurera VS Code och PyCharm för att köra Docker-containrar i utvecklingsmiljön.

Om du inte redan har gjort det installerar du Azure Tools för VS Code.

Instruktion Skärmbild
Steg 1: Använd SKIFT + ALT + A för att öppna Azure-tillägget och bekräfta att du är ansluten till Azure.

Du kan också välja Azure-ikonen i VS Code-tilläggsfältet.

Om du inte är inloggad väljer du Logga in på Azure och följer anvisningarna.

Om du har problem med att komma åt din Azure-prenumeration kan det bero på att du är bakom en proxyserver. Information om hur du löser anslutningsproblem finns i Nätverksanslutningar i Visual Studio Code.
Skärmbild som visar hur Azure Tools ser ut när de har loggats in. Skärmbild som visar hur Azure Tools ser ut om du inte är inloggad.
Steg 2: Använd CTRL + SKIFT + X för att öppna Tillägg, söka efter Docker-tillägget och installera tillägget.

Du kan också välja tilläggsikonen i VS Code-tilläggsfältet.
Skärmbild som visar hur du lägger till Docker-tillägget i VS Code.
Steg 3: Välj Docker-ikonen i tilläggsfältet, expandera avbildningar och högerklicka på en Docker-avbildning kör den som en container. Skärmbild som visar hur du använder Docker-tillägget i VS Code för att köra en container från en Docker-avbildning.
Steg 4: Övervaka Docker-körningens utdata i terminalfönstret . Skärmbild som visar ett exempel på hur du kör en container i VS Code.

Azure CLI och Docker CLI

Du kan också arbeta med Python Docker-avbildningar och containrar med hjälp av Azure CLI och Docker CLI. Både VS Code och PyCharm har terminaler där du kan köra dessa CLI:er.

Använd ett CLI när du vill ha bättre kontroll över bygg- och körningsargument och för automatisering. Följande kommando visar till exempel hur du använder Azure CLI az acr build för att ange Docker-avbildningsnamnet.

az acr build --registry <registry-name> \
  --resource-group <resource-group> \
  --target pythoncontainerwebapp:latest .

Som ett exempel till kan man överväga följande kommando som visar hur du använder Docker CLI run-kommando. Exemplet visar hur du kör en Docker-container som kommunicerar med en MongoDB-instans i utvecklingsmiljön utanför containern. De olika värdena för att slutföra kommandot är enklare att automatisera när de anges på en kommandorad.

docker run --rm -it \
  --publish <port>:<port> --publish 27017:27017 \
  --add-host mongoservice:<your-server-IP-address> \
  --env CONNECTION_STRING=mongodb://mongoservice:27017 \
  --env DB_NAME=<database-name> \
  --env COLLECTION_NAME=<collection-name> \
  containermongo:latest  

Mer information om det här scenariot finns i Skapa och testa en containerbaserad Python-webbapp lokalt.

Miljövariabler i containrar

Python-projekt använder ofta miljövariabler för att skicka konfigurationsdata till programkoden. Den här metoden ger större flexibilitet i olika miljöer. Information om databasanslutning kan till exempel lagras i miljövariabler, vilket gör det enkelt att växla mellan utvecklings-, testnings- och produktionsdatabaser utan att ändra koden. Den här separationen av konfigurationen från kod främjar renare distributioner och förbättrar säkerhet och underhåll.

Paket som python-dotenv används ofta för att läsa nyckel/värde-par från en .env-fil och ange dem som miljövariabler. En .env-fil är användbar när den körs i en virtuell miljö, men rekommenderas inte när du arbetar med containrar. Kopiera inte .env-filen till Docker-avbildningen, särskilt om den innehåller känslig information och containern kommer att offentliggöras. Använd .dockerignore-filen för att undanta filer från att kopieras till Docker-avbildningen. Mer information finns i avsnittet Virtuella miljöer och containrar i den här artikeln.

Du kan skicka miljövariabler till containrar på några sätt:

  1. Definieras i Dockerfile som ENV-instruktioner .
  2. Skickas som --build-arg argument med Kommandot Docker build .
  3. Skickas som --secret argument med Docker Build-kommandot och BuildKit-backend.
  4. Skickas som --env eller --env-file argument med Docker run-kommandot.

De två första alternativen har samma nackdel som med .env-filer , nämligen att du hårdkodar potentiellt känslig information till en Docker-avbildning. Du kan inspektera en Docker-avbildning och se miljövariablerna, till exempel med kommandot docker-avbildningen inspekterad.

Med det tredje alternativet med BuildKit kan du skicka hemlig information som ska användas i Dockerfile för att skapa Docker-avbildningar på ett säkert sätt som inte lagras i den slutliga avbildningen.

Det fjärde alternativet för att ange miljövariabler med docker-körningskommandot innebär att Docker-bilden inte innehåller variablerna. Variablerna är dock fortfarande synliga när man inspekterar containerinstansen (till exempel med docker container inspect). Det här alternativet kan vara acceptabelt när åtkomsten till containerinstansen styrs eller i test- eller utvecklingsscenarier.

Här är ett exempel på hur du skickar miljövariabler med kommandot Docker CLI-körning och använder --env argumentet .

# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>

docker run --rm -it \
  --publish $PORT:$PORT \
  --env CONNECTION_STRING=<connection-info> \
  --env DB_NAME=<database-name> \
  <dockerimagename:tag>

I VS Code (Docker-tillägg) eller PyCharm (Docker-plugin-program) förenklar UI-verktygen hanteringen av Docker-avbildningar och containrar genom att köra STANDARD-DOCKER CLI-kommandon (till exempel docker build, docker run) i bakgrunden.

Slutligen är det annorlunda att ange miljövariabler när du distribuerar en container i Azure än att använda miljövariabler i utvecklingsmiljön. Till exempel:

  • För Web App for Containers konfigurerar du programinställningar under konfigurationen av App Service. De här inställningarna är tillgängliga för din appkod som miljövariabler och används med standardmönstret os.environ . Du kan ändra värden efter den första distributionen när det behövs. Mer information finns i Åtkomst till appinställningar som miljövariabler.

  • För Azure Container Apps konfigurerar du miljövariabler under den inledande konfigurationen av containerappen. Efterföljande ändringar av miljövariabler skapar en revision av containern. Dessutom kan du med Azure Container Apps definiera hemligheter på programnivå och sedan referera till dem i miljövariabler. Mer information finns i Hantera hemligheter i Azure Container Apps.

Som ett annat alternativ kan du använda Service Connector för att hjälpa dig att ansluta Azure-beräkningstjänster till andra säkerhetskopieringstjänster. Den här tjänsten konfigurerar nätverksinställningar och anslutningsinformation (till exempel generera miljövariabler) mellan beräkningstjänster och målstödtjänster i hanteringsplanet.

Visa containerloggar

Visa containerinstansloggar för att se diagnostikmeddelanden som matas ut från kod och för att felsöka problem i containerns kod. Här är flera sätt att visa loggar när du kör en container i utvecklingsmiljön:

  • När du kör en container med VS Code eller PyCharm, som du ser i avsnittet VS Code och PyCharm, kan du se loggar i terminalfönster som öppnas när Docker-körningen körs.

  • Om du använder Docker CLI-kommandot run med den interaktiva flaggan -it, visas utdata följande kommandot.

  • I Docker Desktop kan du också visa loggar för en container som körs.

När du distribuerar en container i Azure har du också åtkomst till containerloggar. Här är flera Azure-tjänster och hur du kommer åt containerloggar i Azure-portalen.

Azure-tjänst Så här kommer du åt loggar i Azure-portalen
Webbapp för containrar Gå till resursen Diagnostisera och lösa problem för att visa loggar. Diagnostik är en intelligent och interaktiv upplevelse som hjälper dig att felsöka din app utan att någon konfiguration krävs. En realtidsvy över loggar finns iövervakningsloggströmmen - . Mer detaljerade loggfrågor och konfiguration finns i de andra resurserna under Övervakning.
Azure Container-applikationer Gå till miljöresursen Diagnostisera och lösa problem för att felsöka miljöproblem. Oftare vill du titta på loggar för containrar. I containerresursen, underProgramrevisionshantering - , väljer du revisionen och därifrån kan du visa system- och konsolloggar. Mer detaljerade loggfrågor och konfiguration finns i resurserna under Övervakning.
Azure Container Instances (Azure containertjänster) Gå till resursen Containrar och välj Loggar.

Här är Azure CLI-kommandona för att komma åt loggar för dessa tjänster.

Azure-tjänst Azure CLI-kommando för att komma åt loggar
Webbapp för containrar az webapp log
Azure Container-applikationer az containerapps logs
Azure Container Instances (Azure containertjänster) az container logs

Det finns också stöd för att visa loggar i VS Code. Du måste ha Azure Tools for VS Code installerat. Nedan visas ett exempel på hur du visar Loggar för Web Apps for Containers (App Service) i VS Code.

Skärmbild som visar hur du visar loggar i VS Code för Web Apps for Containers.

Nästa steg