Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Container Apps beheert automatisch horizontaal schalen via een set declaratieve schaalregels. Als een container-app wordt uitgeschaald, worden nieuwe exemplaren van de container-app op aanvraag gemaakt. Deze exemplaren worden replica's genoemd.
In deze zelfstudie voegt u een HTTP-schaalregel toe aan uw container-app en bekijkt u hoe uw toepassing wordt geschaald.
Vereisten
| Vereiste | Instructies |
|---|---|
| Azure-account | Als u geen Azure-account hebt, kunt u er gratis een maken. U hebt de machtiging Inzender voor het Azure-abonnement nodig om door te gaan. Raadpleeg Azure-rollen toewijzen met behulp van Azure Portal voor meer informatie. |
| GitHub-account | Ontvang er gratis een. |
| Azure-CLI | Installeer de Azure CLI. |
Instellingen
Als u zich wilt aanmelden bij Azure vanuit de CLI, voert u de volgende opdracht uit en volgt u de aanwijzingen om het verificatieproces te voltooien.
az login
Voer de upgradeopdracht uit om ervoor te zorgen dat u de nieuwste versie van de CLI uitvoert.
az upgrade
Installeer of werk vervolgens de Azure Container Apps-extensie voor de CLI bij.
Als u fouten ontvangt over ontbrekende parameters wanneer u opdrachten uitvoert az containerapp in Azure CLI of cmdlets uit de Az.App module in PowerShell, moet u ervoor zorgen dat u de nieuwste versie van de Azure Container Apps-extensie hebt geïnstalleerd.
az extension add --name containerapp --upgrade
Notitie
Vanaf mei 2024 schakelen Azure CLI-extensies standaard geen preview-functies meer in. Als u toegang wilt krijgen tot de preview-functies van Container Apps, installeert u de Container Apps-extensie met --allow-preview true.
az extension add --name containerapp --upgrade --allow-preview true
Nu de huidige extensie of module is geïnstalleerd, registreert u de Microsoft.App en Microsoft.OperationalInsights naamruimten.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
De container-app maken en implementeren
Maak en implementeer uw container-app met de containerapp up opdracht. Met deze opdracht maakt u een:
- Resourcegroep
- Container Apps-omgeving
- Log Analytics-werkruimte
Als er al een van deze resources bestaat, gebruikt de opdracht de bestaande resources in plaats van nieuwe resources te maken.
Ten slotte maakt en implementeert de opdracht de container-app met behulp van een openbare containerafbeelding. mcr.microsoft.com/dotnet/samples:aspnetapp Deze afbeelding wordt gebruikt om de schaalregels te activeren die u in dit artikel maakt. U hoeft .NET niet te kennen of te gebruiken om deze procedure te voltooien.
az containerapp up \
--name my-container-app \
--resource-group my-container-apps \
--location centralus \
--environment 'my-container-apps' \
--image mcr.microsoft.com/dotnet/samples:aspnetapp \
--target-port 8080 \
--ingress external \
--query properties.configuration.ingress.fqdn \
Notitie
Zorg ervoor dat de waarde voor de --image parameter in kleine letters is.
Door deze instelling in te --ingressstellenexternal, maakt u de container-app beschikbaar voor openbare aanvragen.
De up opdracht retourneert de FQDN (Fully Qualified Domain Name) voor de container-app. Kopieer deze FQDN naar een tekstbestand. U gebruikt deze in de sectie Aanvragen verzenden . Uw FQDN ziet er als volgt uit:
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Schaalregel toevoegen
Voeg een HTTP-schaalregel toe aan uw container-app door de opdracht uit te az containerapp update voeren.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Met deze opdracht wordt een HTTP-schaalregel toegevoegd aan uw container-app met de naam my-http-scale-rule en een gelijktijdigheidsinstelling van 1. Als uw app meer dan één gelijktijdige HTTP-aanvraag ontvangt, maakt de runtime replica's van uw app om de aanvragen te verwerken.
De update opdracht retourneert de nieuwe configuratie als een JSON-antwoord om te controleren of uw aanvraag is geslaagd.
Logboekuitvoer starten
U kunt de effecten van het schalen van uw toepassing bekijken door de logboeken weer te geven die zijn gegenereerd door de Container Apps-runtime. Gebruik de az containerapp logs show opdracht om te beginnen met luisteren naar logboekvermeldingen.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
De show opdracht retourneert vermeldingen uit de systeemlogboeken voor uw container-app in realtime. U kunt een antwoord verwachten zoals in het volgende voorbeeld:
{
"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://[::]:80"
}
{
"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/"
}
Zie az containerapp logs voor meer informatie.
Aanvragen verzenden
Open een nieuwe bash-shell. Voer de volgende opdracht uit en vervang deze door <YOUR_CONTAINER_APP_FQDN> de volledig gekwalificeerde domeinnaam voor uw container-app die u hebt opgeslagen in de sectie Container-app maken en implementeren.
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Met deze opdrachten worden 50 aanvragen naar uw container-app verzonden in gelijktijdige batches van 10 aanvragen.
| Opdracht of argument | Beschrijving |
|---|---|
seq 1 50 |
Hiermee wordt een reeks getallen van 1 tot 50 gegenereerd. |
| |
De pipe-operator verzendt de reeks naar de xargs opdracht. |
xargs |
Wordt uitgevoerd curl met de opgegeven URL |
-Iname |
Fungeert als tijdelijke aanduiding voor de uitvoer van seq. Met dit argument voorkomt u dat de retourwaarde naar de curl opdracht wordt verzonden. |
curl |
Roept de opgegeven URL aan. |
-P10 |
Hiermee geeft u xargs de opdracht om maximaal 10 processen tegelijk uit te voeren. |
Zie de documentatie voor meer informatie voor:
In de eerste shell, waar u de az containerapp logs show opdracht hebt uitgevoerd, bevat de uitvoer nu een of meer logboekvermeldingen zoals hieronder.
{
"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
"Type":"Normal",
"ContainerAppName":"my-container-app",
"RevisionName":"my-container-app--00001111",
"ReplicaName":"my-container-app--00001111-aaaaa22222-bbbb",
"Msg":"Replica 'my-container-app--00001111-aaaaa22222-bbbb' has been scheduled to run on a node.",
"Reason":"AssigningReplica",
"EventSource":"ContainerAppController",
"Count":0
}
Schaalaanpassing weergeven in Azure Portal (optioneel)
Meld u aan bij het Azure-portaal.
Voer in de zoekbalk bovenaan mijn container-app in.
Selecteer in de zoekresultaten onder Resources de optie my-container-app.
Vouw in de navigatiebalk aan de linkerkant De toepassing uit en selecteer Schaal en replica's.
Selecteer Replica's op de pagina Schaal en replica's.
Uw container-app heeft nu meer dan één replica die wordt uitgevoerd.
Mogelijk moet u Vernieuwen selecteren om de nieuwe replica's weer te geven.
Vouw bewaking uit in de navigatiebalk aan de linkerkant en selecteer metrische gegevens.
Stel op de pagina Metrische gegevens metrische gegevens in op Aanvragen.
Selecteer Splitsen toepassen.
Vouw de vervolgkeuzelijst Waarden uit en controleer Replica.
Selecteer het blauwe vinkje om het splitsen te voltooien.
In de grafiek ziet u de aanvragen die zijn ontvangen door uw container-app, gesplitst op replica.
De grafiekschaal is standaard ingesteld op de afgelopen 24 uur, met een tijdgranulariteit van 15 minuten. Selecteer de schaal en wijzig deze in de afgelopen 30 minuten, met een tijdgranulariteit van één minuut. Selecteer de knop Toepassen.
Selecteer de grafiek en sleep om de recente toename van aanvragen te markeren die zijn ontvangen door uw container-app.
In de volgende schermopname ziet u een ingezoomde weergave van hoe de aanvragen die door uw container-app worden ontvangen, worden verdeeld over replica's.
CPU- en geheugenschaalbaarheid
U moet indien mogelijk de voorkeur geven aan HTTP-schaalregels boven CPU- of geheugenschaalregels. CPU- en geheugenschaalvergroting laat uw container-app niet naar nul schalen.
Nadat u een CPU- of geheugenschaalregel hebt toegevoegd, kunt u deze testen door aanvragen naar uw container-app te verzenden en de schaal in Azure Portal weer te geven.
Nadat u verzoeken naar uw schaal-app hebt verzonden, kan het een minuut duren voordat de schaalregel wordt geactiveerd en de nieuwe replica's worden gemaakt.
CPU-schaalaanpassing
Met CPU-schaalaanpassing kan uw app in- of uitschalen, afhankelijk van hoeveel de CPU wordt gebruikt.
Als u bijvoorbeeld een CPU-schaalregel maakt met een gebruikswaarde van 50, maakt Azure Container Apps meer replica's van uw container-app wanneer het gemiddelde CPU-gebruik voor alle replica's 50%bereikt.
CPU-schaalaanpassing staat niet toe dat uw container-app naar nul wordt geschaald. Zie KEDA CPU-schaaltrigger voor meer informatie over deze trigger.
Voeg een CPU-schaalregel toe aan uw container-app door de opdracht uit te az containerapp update voeren.
Notitie
Wanneer u de Azure CLI gebruikt om een schaalregel toe te voegen aan een container-app die al een schaalregel heeft, vervangt de nieuwe schaalregel de oude schaalregel. Zie Meerdere schaalregels om te zien hoe u meerdere schaalregels toevoegt.
Vervang de <PLACEHOLDERS> door uw waarden voordat u de volgende opdracht uitvoert. Vervang in deze zelfstudie <UTILIZATION> door 1. Dit zorgt ervoor dat uw container-app wordt geschaald wanneer het gemiddelde CPU-gebruik voor alle replica's 1%bereikt. Deze waarde is alleen bedoeld voor demonstratie. Het aantal replica's is beperkt tot 10 door de --max-replicas 10 die u heeft opgegeven bij het uitvoeren van az containerapp update.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name my-cpu-scale-rule \
--scale-rule-type cpu \
--scale-rule-metadata type=Utilization value=<UTILIZATION>
Schaalvergroting van geheugen
Met geheugenschalen kan uw app in- of uitschalen, afhankelijk van de hoeveelheid geheugen die wordt gebruikt.
Als u bijvoorbeeld een regel voor geheugenschaal maakt met een gebruikswaarde 50, maakt Azure Container Apps meer replica's van uw container-app wanneer het gemiddelde geheugengebruik voor alle replica's 50% bereikt.
Met de schaalbaarheid van het geheugen kan uw containerapplicatie niet naar nul worden geschaald. Zie KEDA-geheugenschaaltrigger voor meer informatie over deze trigger.
Voeg een regel voor geheugenschaal toe aan uw container-app door de opdracht uit te az containerapp update voeren.
Notitie
Wanneer u de Azure CLI gebruikt om een schaalregel toe te voegen aan een container-app die al een schaalregel heeft, vervangt de nieuwe schaalregel de oude schaalregel. Zie Meerdere schaalregels om te zien hoe u meerdere schaalregels toevoegt.
Vervang de <PLACEHOLDERS> door uw waarden voordat u de volgende opdracht uitvoert. Vervang in deze zelfstudie <UTILIZATION> door 1. Dit zorgt ervoor dat uw container-app wordt geschaald wanneer het gemiddelde geheugengebruik voor alle replica's 1%bereikt. Deze waarde is alleen bedoeld voor demonstratie. Het aantal replica's is beperkt tot 10 door de --max-replicas 10 die u heeft opgegeven bij het uitvoeren van az containerapp update.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name my-memory-scale-rule \
--scale-rule-type memory \
--scale-rule-metadata type=Utilization value=<UTILIZATION>
Meerdere schaalregels
Als u meerdere schaalregels wilt toevoegen aan uw container-app met behulp van de Azure CLI, moet u YAML gebruiken.
Exporteer de configuratie van uw container-app naar YAML met de
az containerapp showopdracht.az containerapp show \ --name my-container-app \ --resource-group my-container-apps \ --output yaml > app.yamlVoeg in de
properties>template>scale>rulessectie vanapp.yaml, de volgende eigenschappen toe. Vervang de<PLACEHOLDERS>waarden door uw waarden.... properties: ... template: ... scale: ... rules: - name: cpu-scaling-rule custom: type: cpu metadata: type: "Utilization" value: "<CPU_UTILIZATION>" - name: memory-scaling-rule custom: type: memory metadata: type: "Utilization" value: "<MEMORY_UTILIZATION>" ...Importeer de configuratie van uw container-app met de opdracht
app.yamlvanaz containerapp update.az containerapp update \ --name my-container-app \ --resource-group my-container-apps \ --yaml app.yaml
Resources opschonen
Als u deze toepassing niet wilt blijven gebruiken, voert u de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in deze zelfstudie zijn gemaakt.
Let op
Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als er bronnen buiten het bereik van deze handleiding aanwezig zijn in de opgegeven resourcegroep, zullen ze ook worden verwijderd.
az group delete --name my-container-apps
Tip
Ondervindt u problemen? Laat het ons weten op GitHub door een probleem te openen in de Azure Container Apps-opslagplaats.