Kurze Hintergrundaufgabe benötigt? Container Apps Job erstellen
CloudTrips muss eine kurze containerisierte Aufgabe ausführen und nach Abschluss beenden. Ein Container Apps Job ist für endliche Hintergrundarbeit gedacht; im Gegensatz zu einer Container App stellt er keinen dauerhaft erreichbaren Webendpunkt bereit.
Container App → beantwortet Anfragen und kann weiterlaufen
Container Apps Job → startet, erledigt Arbeit und beendet sich
Job → wiederverwendbare Konfiguration
Ausführung → ein einzelner Lauf dieses Jobs
Replikat → Containerinstanz innerhalb einer Ausführung
Ein Job kann Manual für Arbeit bei Bedarf, Schedule für einen Cron-Zeitplan oder Event für Quellen wie Warteschlangennachrichten verwenden. Diese Reise verwendet Manual, damit eine Person, Pipeline, ein CLI-Befehl oder eine API jeden Lauf gezielt startet.
Job erstellen
Im Azure-Portal nach Container App Jobs suchen, Create auswählen und eingeben:
Subscription: CloudTrips TEST
Resource group: Create new → rg-cloudtrips-containerapps-job-test-weu
Container job name: caj-cloudtrips-task-test-weu
Region: West Europe
Container Apps environment: Create new
Environment name: cae-cloudtrips-job-test-weu
Environment type: Workload profiles
Zone redundancy: Disabled
Trigger type: Manual
Das aktuelle Portal zeigt Replica timeout, Retry, Parallelism oder Completion count während der Erstellung möglicherweise nicht an. Lasse die erzeugten Standardwerte unverändert.
Container konfigurieren
Unter Container das öffentliche Job-Beispiel von Microsoft verwenden:
Container name: main
Image source: Docker Hub or other registries
Image type: Public
Registry login server: mcr.microsoft.com
Image and tag: k8se/quickstart-jobs:latest
Workload profile: Consumption
CPU and memory: 0.25 CPU cores, 0.5 Gi
Ingress nicht aktivieren: Ein Hintergrundjob ist keine HTTP-Anwendung. Das Beispiel wartet einige Sekunden, schreibt Meldungen in die Standardausgabe und beendet sich. In einem echten Job würde dieses Image durch einen Container ersetzt, der etwa eine Datei verarbeitet, einen Bericht erzeugt, eine Migration ausführt oder Warteschlangenarbeit erledigt.
Der Container wird nicht als separate Container-App-Ressource erstellt. Er ist
Teil des Job-Templates. Jede Jobausführung startet ein Replikat mit diesem
main-Container; wenn dessen Prozess erfolgreich endet, ist das Replikat
abgeschlossen.
Review + create > Create und danach Go to resource auswählen.

Ausführungskonfiguration prüfen
Prüfe nach der Erstellung Settings > Configuration, falls dein Portal diese Felder anzeigt. Andernfalls lies die wirksamen Werte aus:
az containerapp job show \
--name caj-cloudtrips-task-test-weu \
--resource-group rg-cloudtrips-containerapps-job-test-weu \
--query "properties.configuration.{TriggerType:triggerType,ReplicaTimeout:replicaTimeout,ReplicaRetryLimit:replicaRetryLimit,Parallelism:manualTriggerConfig.parallelism,CompletionCount:manualTriggerConfig.replicaCompletionCount}" \
--output yaml
Diese Werte steuern eine Ausführung und keinen dauerhaft laufenden Dienst:
Replica timeout → maximale Laufzeit eines Replikats
Replica retry limit → Ersatzversuche nach einem Fehler
Parallelism → gleichzeitig arbeitende Replikate
Completion count → erfolgreiche Replikate für den Abschluss
Die erzeugten Werte können von beispielhaften Standardwerten abweichen; für diesen kurzen Beispieljob ist keine Änderung erforderlich.

Ausführung starten
Das Erstellen eines manuellen Jobs speichert seine Konfiguration, führt ihn aber noch nicht aus. Öffne Overview des Jobs und wähle in der oberen Aktionsleiste Run now. Öffne nach Annahme der Anforderung Monitoring > Execution history und wähle Refresh.
Die Ausführung durchläuft normalerweise:
Pending → Running → Succeeded
Succeeded bedeutet, dass die erforderliche Anzahl erfolgreicher Abschlüsse mit
Exitcode 0 erreicht wurde. Failed bedeutet, dass der Container fehlerhaft
beendet wurde, ein Timeout erreicht oder alle Wiederholungen verbraucht wurden.

Ausgabe prüfen
Die Ausführung und danach View logs auswählen. Die Beispielausgabe sollte zeigen, dass der Job gestartet, kurz gewartet und beendet wurde. Da Protokolle asynchron gesammelt werden, können sie erst nach ein oder zwei Minuten erscheinen.

Den Job erneut starten, um zu prüfen, dass Azure eine neue Ausführung erstellt und nicht die alte neu startet. Jede Ausführung besitzt einen eigenen Namen, Status, Start- und Endzeitpunkt, Replikate und Protokolle.
Optional eine weitere Ausführung über die CLI starten:
az containerapp job start \
--name caj-cloudtrips-task-test-weu \
--resource-group rg-cloudtrips-containerapps-job-test-weu
Alle Ausführungen auflisten:
az containerapp job execution list \
--name caj-cloudtrips-task-test-weu \
--resource-group rg-cloudtrips-containerapps-job-test-weu \
--query "[].{Execution:name,Status:properties.status,Started:properties.startTime,Finished:properties.endTime}" \
--output table

Beim Consumption-Workloadprofil werden Ressourcen während der Ausführungen berechnet. Zusätzlich können Kosten für die Protokollaufnahme entstehen; es gibt kein inaktives Job-Replikat, das dauerhaft laufen muss.
Bereinigen
Die eigenständige Ressourcengruppe löschen, um Job, Umgebung und Überwachungsressourcen zu entfernen:
az group delete \
--name rg-cloudtrips-containerapps-job-test-weu \
--yes
Prüfen, ob sie entfernt wurde:
az group exists --name rg-cloudtrips-containerapps-job-test-weu
Erwartetes Ergebnis: false.