Share via


Självstudie: Skala en containerapp

Azure Container Apps hanterar automatisk horisontell skalning via en uppsättning deklarativa skalningsregler. När en containerapp skalar ut skapas nya instanser av containerappen på begäran. Dessa instanser kallas repliker.

I den här självstudien lägger du till en HTTP-skalningsregel i containerappen och ser hur programmet skalar.

Förutsättningar

Krav Instruktioner
Azure-konto Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt.

Du behöver behörigheten Deltagare för Azure-prenumerationen för att kunna fortsätta. Mer information finns i Tilldela Azure-roller med hjälp av Azure-portalen.
GitHub-konto Skaffa en gratis.
Azure CLI Installera Azure CLI.

Ställ in

Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.

az login

Kör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.

az upgrade

Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.

az extension add --name containerapp --upgrade

Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.App namnrymderna och Microsoft.OperationalInsights .

Kommentar

Azure Container Apps-resurser har migrerats från Microsoft.Web namnområdet till Microsoft.App namnområdet. Mer information finns i Namnområdesmigrering från Microsoft.Web till Microsoft.App i mars 2022.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Skapa och distribuera containerappen

Skapa och distribuera containerappen containerapp up med kommandot . Det här kommandot skapar en:

  • Resursgrupp
  • Container Apps-miljö
  • Log Analytics-arbetsyta

Om någon av dessa resurser redan finns använder kommandot befintliga resurser i stället för att skapa nya.

Slutligen skapar och distribuerar kommandot containerappen med hjälp av en offentlig containeravbildning.

az containerapp up \
  --name my-container-app \
  --resource-group my-container-apps \
  --location centralus \
  --environment 'my-container-apps' \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 8080 \
  --ingress external \
  --query properties.configuration.ingress.fqdn \

Kommentar

Kontrollera att värdet för parametern är i gemener --image .

Genom att ange --ingress till externalgör du containerappen tillgänglig för offentliga begäranden.

Kommandot up returnerar det fullständigt kvalificerade domännamnet (FQDN) för containerappen. Kopiera det här fullständiga domännamnet till en textfil. Du använder den i avsnittet Skicka begäranden . Ditt FQDN ser ut som i följande exempel:

https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io

Lägg till skalningsregel

Lägg till en HTTP-skalningsregel i containerappen genom att az containerapp update köra kommandot .

az containerapp update \
	--name my-container-app \
	--resource-group my-container-apps \
    --scale-rule-name my-http-scale-rule \
    --scale-rule-http-concurrency 1

Det här kommandot lägger till en HTTP-skalningsregel i containerappen med namnet my-http-scale-rule och en samtidighetsinställning på 1. Om din app tar emot mer än en samtidig HTTP-begäran skapar körningen repliker av din app för att hantera begäranden.

Kommandot update returnerar den nya konfigurationen som ett JSON-svar för att verifiera att din begäran lyckades.

Starta loggutdata

Du kan se effekterna av din programskalning genom att visa loggarna som genereras av Container Apps-körningen. az containerapp logs show Använd kommandot för att börja lyssna efter loggposter.

az containerapp logs show \
	--name my-container-app \
	--resource-group my-container-apps \
	--type=system \
	--follow=true

Kommandot show returnerar poster från systemloggarna för containerappen i realtid. Du kan förvänta dig ett svar som i följande exempel:

{
	"TimeStamp":"2023-08-01T16:49:03.02752",
	"Log":"Connecting to the container 'my-container-app'..."
}
{
	"TimeStamp":"2023-08-01T16:49:03.04437",
	"Log":"Successfully Connected to container:
	'my-container-app' [Revision: 'my-container-app--9uj51l6',
	Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
	"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
	"Log":"Now listening on: http://[::]:8080"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
	"Log":"Application started. Press Ctrl+C to shut down."
}
{
	"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
	"Log":"Hosting environment: Production"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
	"Log":"Content root path: /app/"
}

Mer information finns i az containerapp logs (Az containerapp logs).

Skicka begäranden

Öppna ett nytt bash-gränssnitt. Kör följande kommando och ersätt <YOUR_CONTAINER_APP_FQDN> med det fullständigt kvalificerade domännamnet för din containerapp som du sparade från avsnittet Skapa och distribuera containerappen .

seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"

Dessa kommandon skickar 50 begäranden till containerappen i samtidiga batchar med 10 begäranden vardera.

Kommando eller argument beskrivning
seq 1 50 Genererar en sekvens med tal från 1 till 50.
| Pipe-operatorn skickar sekvensen xargs till kommandot.
xargs Körs curl med den angivna URL:en
-Iname Fungerar som platshållare för utdata seqfrån . Det här argumentet förhindrar att returvärdet skickas till curl kommandot.
curl Anropar den angivna URL:en.
-P10 Instruerar xargs att köra upp till 10 processer åt gången.

Mer information finns i dokumentationen för:

I det första gränssnittet, där du körde az containerapp logs show kommandot, innehåller utdata nu en eller flera loggposter som följande.

{
	"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
	"Type":"Normal",
	"ContainerAppName":"my-container-app",
	"RevisionName":"my-container-app--9uj51l6",
	"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
	"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
	"Reason":"AssigningReplica",
	"EventSource":"ContainerAppController",
	"Count":0
}

Visa skalning i Azure-portalen (valfritt)

  1. Logga in på Azure-portalen.
  2. I sökfältethögst upp anger du my-container-app.
  3. I sökresultaten går du till Resurser och väljer my-container-app.
  4. I navigeringsfältet till vänster expanderar du Program och väljer Skala och repliker.
  5. På sidan Skala och repliker väljer du Repliker.
  6. Containerappen har nu fler än en replik som körs.

Skärmbild av containerapprepliker.

Du kan behöva välja Uppdatera för att se de nya replikerna.

  1. I navigeringsfältet till vänster expanderar du Övervakning och väljer Mått.

  2. På sidan Mått anger du Mått till Begäranden.

  3. Välj Använd delning.

  4. Expandera listrutan Värden och markera Replik.

  5. Välj den blå bockmarkeringsikonen för att slutföra redigeringen av delningen.

  6. Diagrammet visar de begäranden som tas emot av containerappen, uppdelade efter replik.

    Diagram över mått för containerappar som visar begäranden uppdelade efter replik.

  7. Som standard är grafskalan inställd på de senaste 24 timmarna, med en tidskornighet på 15 minuter. Välj skalan och ändra den till de senaste 30 minuterna, med en tidskornighet på en minut. Välj knappen Tillämpa.

  8. Välj i diagrammet och dra för att markera den senaste ökningen av begäranden som tagits emot av containerappen.

Skärmbild av diagram över containerappsmått som visar begäranden som delas efter replik, med en skala på 30 minuter och en tidskornighet på en minut.

Följande skärmbild visar en zoomad vy över hur begäranden som tas emot av containerappen delas upp mellan repliker.

Skärmbild av containerappens måttdiagram som visar begäranden som delats efter replik i en zoomad vy.

Rensa resurser

Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här självstudien.

Varning

Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här självstudien i den angivna resursgruppen tas de också bort.

az group delete --name my-container-apps

Dricks

Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.

Nästa steg