Een taak maken met Azure Container Apps
Met Azure Container Apps-taken kunt u containertaken uitvoeren die worden uitgevoerd voor een eindige duur en afsluiten. U kunt een taak handmatig activeren, de uitvoering plannen of de uitvoering activeren op basis van gebeurtenissen.
Taken zijn het meest geschikt voor taken zoals gegevensverwerking, machine learning, opschonen van resources of scenario's waarvoor verwerking op aanvraag is vereist.
In deze quickstart maakt u een handmatige of geplande taak. Zie Een gebeurtenisgestuurde taak implementeren met Azure Container Apps voor meer informatie over het maken van een gebeurtenisgestuurde taak.
Vereisten
- Een Azure-account met een actief abonnement.
- Als u geen account hebt, kunt u er gratis een maken.
- Installeer de Azure CLI.
- Raadpleeg de beperkingen voor taken voor een lijst met beperkingen.
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
Zorg ervoor dat u de nieuwste versie van de CLI uitvoert via de upgradeopdracht.
az upgrade
Installeer de nieuwste versie van de Azure Container Apps CLI-extensie.
az extension add --name containerapp --upgrade
Registreer de
Microsoft.App
enMicrosoft.OperationalInsights
naamruimten als u deze nog niet hebt geregistreerd in uw Azure-abonnement.az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights
Nu uw Azure CLI-installatie is voltooid, kunt u de omgevingsvariabelen definiƫren die in dit artikel worden gebruikt.
RESOURCE_GROUP="jobs-quickstart" LOCATION="northcentralus" ENVIRONMENT="env-jobs-quickstart" JOB_NAME="my-job"
Een Container Apps-omgeving maken
De Azure Container Apps-omgeving fungeert als een veilige grens rond container-apps en -taken, zodat ze hetzelfde netwerk kunnen delen en met elkaar kunnen communiceren.
Gebruik de volgende opdracht om een resourcegroep te maken.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
Maak de Container Apps-omgeving met behulp van de volgende opdracht.
az containerapp env create \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION"
Een handmatige taak maken en uitvoeren
Als u handmatige taken wilt gebruiken, maakt u eerst een taak met het triggertype Manual
en start u vervolgens een uitvoering. U kunt meerdere uitvoeringen van dezelfde taak starten en meerdere taakuitvoeringen kunnen gelijktijdig worden uitgevoerd.
Maak een taak in de Container Apps-omgeving met behulp van de volgende opdracht.
az containerapp job create \ --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \ --trigger-type "Manual" \ --replica-timeout 1800 \ --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \ --cpu "0.25" --memory "0.5Gi"
Handmatige taken worden niet automatisch uitgevoerd. U moet een uitvoering van de taak starten.
Start een uitvoering van de taak met behulp van de volgende opdracht.
az containerapp job start \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP"
De opdracht retourneert details van de taakuitvoering, inclusief de naam.
Een geplande taak maken en uitvoeren
Als u geplande taken wilt gebruiken, maakt u een taak met triggertype Schedule
en een cron-expressie waarmee de planning wordt gedefinieerd.
Maak een taak in de Container Apps-omgeving die elke minuut wordt gestart met behulp van de volgende opdracht.
az containerapp job create \
--name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
--trigger-type "Schedule" \
--replica-timeout 1800 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--cron-expression "*/1 * * * *"
Taakuitvoeringen worden automatisch gestart op basis van de planning.
Container Apps-taken maken gebruik van cron-expressies om planningen te definiƫren. Het ondersteunt de standaard cron-expressie-indeling met vijf velden voor minuut, uur, dag van maand, maand en dag van de week.
Recente uitvoeringsgeschiedenis van taken weergeven
Container Apps-taken onderhouden een geschiedenis van recente uitvoeringen. U kunt de uitvoeringen van een taak weergeven.
az containerapp job execution list \
--name "$JOB_NAME" \
--resource-group "$RESOURCE_GROUP" \
--output table \
--query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
Uitvoeringen van geplande taken worden weergegeven in de lijst terwijl ze worden uitgevoerd.
Status Name StartTime
--------- -------------- -------------------------
Succeeded my-job-jvsgub6 2023-05-08T21:21:45+00:00
Uitvoeringslogboeken voor querytaken
Taakuitvoeringen voeren uitvoerlogboeken uit naar de logboekregistratieprovider die u hebt geconfigureerd voor de Container Apps-omgeving. Logboeken worden standaard opgeslagen in Azure Log Analytics.
Sla de Log Analytics-werkruimte-id voor de Container Apps-omgeving op in een variabele.
LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \ --output tsv)
Sla de naam van de meest recente taakuitvoering op in een variabele.
JOB_EXECUTION_NAME=$(az containerapp job execution list \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "[0].name" \ --output tsv)
Voer een query uit op Log Analytics voor de taakuitvoering met behulp van de volgende opdracht.
az monitor log-analytics query \ --workspace "$LOG_ANALYTICS_WORKSPACE_ID" \ --analytics-query "ContainerAppConsoleLogs_CL | where ContainerGroupName_s startswith '$JOB_EXECUTION_NAME' | order by _timestamp_d asc" \ --query "[].Log_s"
Notitie
Totdat de
ContainerAppConsoleLogs_CL
tabel gereed is, retourneert de opdracht geen resultaten of met een fout:BadArgumentError: The request had some invalid properties
Wacht enkele minuten en voer de opdracht opnieuw uit.De volgende uitvoer is een voorbeeld van de logboeken die door de taak worden afgedrukt.
[ "2023/04/24 18:38:28 This is a sample application that demonstrates how to use Azure Container Apps jobs", "2023/04/24 18:38:28 Starting processing...", "2023/04/24 18:38:33 Finished processing. Shutting down!" ]
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 quickstart zijn gemaakt.
Let op
Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als resources buiten het bereik van deze quickstart in de opgegeven resourcegroep bestaan, worden ze ook verwijderd.
az group delete --name "$RESOURCE_GROUP"
Tip
Ondervindt u problemen? Laat het ons weten op GitHub door een probleem te openen in de Azure Container Apps-opslagplaats.