Cloud & IT Cert Prep · Lektion

Azure Container Apps

Distribuera en mikrotjänstapplikation till Azure Container Apps med Dapr-sidecarintegrering, konfigurera ingress och använd KEDA-baserad automatisk skalning som utlöses av Service Bus-köns djup.

Lektion 3 av 413 steg

Azure Container Apps är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad är Azure Container Apps?

Azure Container Apps (ACA) är en fullständigt hanterad serverless-tjänst för containerhosting som bygger på Kubernetes och KEDA (Kubernetes Event-Driven Autoscaling). Till skillnad från AKS behöver du inte hantera kontrollplanet, nodpoolerna eller Kubernetes-manifest direkt. I stället distribuerar du containrar med ett enkelt CLI-kommando eller en YAML-definition, och Azure hanterar all orkestrering. ACA passar bra för mikrotjänster, API-bakändar, händelsestyrda arbetare och bakgrundsjobb som behöver skalas dynamiskt, inklusive skalning till noll.

Container Apps-miljöer

En Container Apps-miljö är den isolerade gräns inom vilken en eller flera Container Apps körs. Alla appar i en miljö delar samma virtuella nätverk och Log Analytics-arbetsyta. Miljöer omfattar en region och en resursgrupp. Du kan distribuera flera miljöer för isolering mellan team eller stadier (produktion kontra staging). En miljö kan valfritt injiceras i ett VNet i ditt eget virtuella nätverk, så att Container Apps och andra Azure-tjänster kan kommunicera privat utan att gå via det offentliga internet.

# Create a Container Apps environment
az containerapp env create \
  --name myACAEnvironment \
  --resource-group myRG \
  --location eastus

Distribuera en Container App

För att distribuera en Container App anger du containeravbildningen (från Azure Container Registry eller valfritt offentligt register), antalet repliker och miljövariablerna. Appen blir offentligt tillgänglig via en automatiskt genererad HTTPS-URL om du aktiverar extern ingress. Ingress-konfigurationen omfattar målporten, trafikfördelning för blue-green-distributioner och om endast HTTP eller HTTPS ska tillåtas. ACA hämtar avbildningen vid distributionen, och miljön måste ha behörighet att hämta från registret.

# Deploy a container app from Azure Container Registry
az containerapp create \
  --name myapi \
  --resource-group myRG \
  --environment myACAEnvironment \
  --image myacr.azurecr.io/myapi:latest \
  --target-port 8080 \
  --ingress external \
  --registry-server myacr.azurecr.io \
  --min-replicas 1 \
  --max-replicas 10

KEDA-baserad autoskalning

Container Apps skalar med hjälp av KEDA-skalare som utlöses av externa mått. Inbyggda KEDA-skalare omfattar: HTTP-trafik (samtidiga begäranden per replik), Azure Service Bus-ködjup (väntande meddelanden), Azure Storage Queue, Cron (tidsbaserad) och CPU/Memory. När skalarmåttet sjunker till noll och minReplicas är inställt på 0 skalar Container Apps till noll — utan beräkningskostnad tills nya begäranden anländer. Skalning till noll är utmärkt för händelsestyrda arbetare med sporadiska arbetsbelastningar.

# Scale based on Service Bus queue depth
az containerapp update \
  --name myworker \
  --resource-group myRG \
  --scale-rule-name sbqueue-scaler \
  --scale-rule-type azure-servicebus \
  --scale-rule-metadata 'queueName=orders' 'namespace=myservicebusns' 'messageCount=5' \
  --scale-rule-auth 'connection=servicebus-connection-secret:connection' \
  --min-replicas 0 \
  --max-replicas 20

Dapr-integrering

Dapr (Distributed Application Runtime) är en portabel, händelsestyrd runtime som förenklar utvecklingen av mikrotjänster. Container Apps har inbyggd Dapr-integrering — du aktiverar den per app med en enda flagga. Dapr tillhandahåller byggblock för: tjänsteanrop (med återförsök och mTLS), pub/sub-meddelanden (abstraherar Service Bus och Event Hubs), tillståndshantering (abstraherar Redis och Cosmos DB) samt utdatabindningar. Med Dapr kommunicerar mikrotjänster via Dapr-sidecar utan att känna till detaljerna i den underliggande infrastrukturen.

# Enable Dapr on a Container App
az containerapp update \
  --name myapi \
  --resource-group myRG \
  --enable-dapr \
  --dapr-app-id myapi \
  --dapr-app-port 8080 \
  --dapr-app-protocol http

Revisioner och trafikfördelning

Varje distribution till en Container App skapar en ny revision. I läget flera revisioner kan du fördela trafiken mellan revisioner för blue-green- eller canary-distributioner. Du kan till exempel skicka 10 % av trafiken till en ny revision och 90 % till den aktuella stabila revisionen. Övervaka felfrekvenser och svarstider för den nya revisionen innan du ökar dess trafikandel till 100 %. Gamla revisioner kan inaktiveras men behålls i historiken, vilket gör det möjligt att omedelbart återställa genom att flytta trafikandelen tillbaka.

# Set traffic split between two revisions
az containerapp ingress traffic set \
  --name myapi \
  --resource-group myRG \
  --revision-weight myapi--abc123=90 myapi--def456=10

Hemligheter och miljövariabler

Container Apps stöder två sätt att injicera konfiguration: miljövariabler (för icke-känslig konfiguration som funktionsflaggor eller API-URL:er) och hemligheter (för känsliga värden som anslutningssträngar). Hemligheter lagras på Container App-nivå och refereras till av miljövariabler eller Dapr-komponenter. För den säkraste konfigurationen refererar du till hemligheter från Azure Key Vault med hjälp av en hanterad identitet, så att hemligheten hämtas vid körning och aldrig lagras i Container Apps konfigurationsplan.

# Add a secret to a Container App
az containerapp secret set \
  --name myapi \
  --resource-group myRG \
  --secrets 'db-password=supersecretpassword'

# Reference the secret as an environment variable
az containerapp update \
  --name myapi \
  --resource-group myRG \
  --set-env-vars 'DB_PASSWORD=secretref:db-password'

Jobb: arbetsbelastningar som körs till slutförande

Container Apps Jobs utökar plattformen med stöd för arbetsbelastningar som körs till slutförande – containrar som startar, utför sitt arbete och avslutas. Jobs stöder tre utlösartyper: Manuell (utlöses via API eller CLI), Schemalagd (cron-uttryck) och Händelsestyrd (KEDA-skalaren utlöser varje körning). Jobs debiteras endast för den faktiska körningstiden och passar utmärkt för batchbearbetning, rapportgenerering, databasmigreringar och ML-inferenspipelines som körs regelbundet eller som svar på händelser.

# Create a scheduled Container Apps job (run every hour)
az containerapp job create \
  --name my-batch-job \
  --resource-group myRG \
  --environment myACAEnvironment \
  --trigger-type Schedule \
  --cron-expression '0 * * * *' \
  --image myacr.azurecr.io/batchjob:latest \
  --cpu 0.5 --memory 1Gi

Observerbarhet: loggar och mätvärden

Container Apps skickar systemloggar (plattformshändelser som skapande av revisioner och skalning) och konsolloggar (programmets stdout/stderr) till den Log Analytics-arbetsyta som är kopplad till miljön. Fråga loggar med KQL: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. Inbyggda Azure Monitor-mätvärden omfattar antal repliker, antal begäranden, svarstid för begäranden samt CPU- och minnesanvändning per replik – allt tillgängligt i Azure-portalen utan ytterligare konfiguration.

# Stream live logs from a Container App
az containerapp logs show \
  --name myapi \
  --resource-group myRG \
  --follow

ACA jämfört med AKS och App Service

Välj rätt Azure-plattform för containrar: Container Apps passar bäst för mikrotjänster, händelsestyrda arbetare och API:er när ni vill ha Kubernetes-fördelar utan att hantera klustret – särskilt när skalning till noll är värdefull. AKS passar bäst när ni behöver full kontroll över Kubernetes, anpassade operatorer eller specifika nodkonfigurationer (GPU, mycket minne). App Service passar bäst för traditionella webbprogram och API:er när utvecklingsteamet föredrar en enkel PaaS-modell utan den administrativa overhead som containerhantering medför. Alla tre stöder containrar; skillnaden handlar om komplexitet i hanteringen kontra graden av kontroll.

Nätverk: intern och extern ingress

Container Apps stöder två ingresslägen: Extern (nåbar offentligt via en lastbalanserad HTTPS-slutpunkt med automatisk TLS) och Intern (endast nåbar från samma Container Apps-miljö eller från resurser med VNet-peering). Intern ingress används för backendtjänster som aldrig ska exponeras mot internet. Appar kan anropa varandra med det automatiskt genererade interna DNS-namnet http://myapi i samma miljö, vilket möjliggör enkel kommunikation mellan tjänster utan att en API-gateway behöver distribueras.

Snabbkontroll

Testa er förståelse av begreppen i Microsoft Azure Fundamentals (AZ-900) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har ni lärt er att Azure Container Apps tillhandahåller serverlös containerhosting som bygger på Kubernetes och KEDA utan klusterhantering, att KEDA-skalare möjliggör skalning till noll baserat på ködjup, HTTP-trafik eller cron-scheman, samt att Dapr-integrering förenklar kommunikation mellan mikrotjänster och tillståndshantering. Härnäst kopplar vi ihop allt till ett komplett utvecklararbetsflöde från början till slut.

Gratis att börja

Lär dig Cloud & IT Cert Prep med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
150
Lektioner
600

Vanliga frågor

Är lektionen ”Azure Container Apps” gratis?

Ja – hela texten till ”Azure Container Apps” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad lär jag mig i ”Azure Container Apps”?

Distribuera en mikrotjänstapplikation till Azure Container Apps med Dapr-sidecarintegrering, konfigurera ingress och använd KEDA-baserad automatisk skalning som utlöses av Service Bus-köns djup. Ni övar på Cloud & IT Cert Prep med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cloud & IT Cert Prep?

Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Azure Container Apps”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cloud & IT Cert Prep-lektionen?

Ja. Varje Cloud & IT Cert Prep-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Hanterad identitet för lösenordsfri autentisering
  2. Azure Service Bus för frikopplad meddelandehantering
  3. Azure Container Apps
  4. Utvecklararbetsflöde från början till slut
← Tillbaka till Cloud & IT Cert Prep