Jobs ausführen und aktualisieren
In diesem Lernprogramm wird in der Konsole von IBM Cloud® Code Engine ein Stapeljob ausgeführt.
Ein Auftrag führt eine oder mehrere Instanzen Ihres ausführbaren Codes parallel aus. Im Gegensatz zu Anwendungen, die HTTP-Anforderungen verarbeiten, sind Jobs so konzipiert, dass sie einmal ausgeführt werden und den Vorgang beenden. Wenn Sie einen Job erstellen, können Sie Informationen für die Workloadkonfiguration angeben, die bei jeder Ausführung des Jobs verwendet werden.
Vorbereitende Schritte
Weitere Informationen zu Batch-Aufträgen finden Sie unter Arbeitsbelastung durch Batch-Aufträge.
Um die Konsole Code Engine zu verwenden, gehen Sie zu Code Engine overview.
Alle Code Engine-Benutzer müssen über ein nutzungsabhängiges Konto verfügen. Für Tutorien können Kosten anfallen. Verwenden Sie den Cost Estimator, um einen Kostenvoranschlag auf der Grundlage Ihrer voraussichtlichen Nutzung zu erstellen. Weitere Informationen finden Sie unter Preisstruktur fürCode Engine.
Job erstellen
Erstellen Sie einen Code Engine-Job mithilfe des icr.io/codeengine/helloworld
-Image. Dieser Job druckt Hello from helloworld! I'm a task job!
.
- Öffnen Sie die Übersichtsseite Code Engine.
- Wählen Sie Los geht's aus.
- Wählen Sie Job aus.
- Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um einen Job erstellen zu können.
- Geben Sie einen Namen für den Job ein und geben Sie
icr.io/codeengine/helloworld
als Container-Image an. Verwenden Sie einen Namen für den Job, der innerhalb des Projekts eindeutig ist. In diesem Beispiel müssen Sie die Standardwerte für die Umgebungsvariablen und Laufzeiteinstellungen nicht ändern. Weitere Informationen zu dem Code, der für das vorliegende Beispiel verwendet wird, finden Sie unterhelloworld
. - Klicken Sie auf Erstellen.
Job ausführen
Nachdem Sie den Job erstellt und die Informationen für die Workloadkonfiguration angegeben haben, können Sie den Job ausführen. Sie können einen Teil der Konfigurationsinformationen überschreiben.
Beachten Sie, dass bei der Ausführung Ihres Jobs die neueste Version Ihres referenzierten Container-Image heruntergeladen und bereitgestellt wird, sofern Sie kein Tag für das Image angegeben haben. Wenn ein Tag für das Image angegeben wird, dann wird das mit Tags versehene Image für den Job verwendet.
-
Navigieren Sie zu Ihrer Jobseite:
- Klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts. Klicken Sie auf Jobs, um mit Ihren Jobs und Jobausführungen zu arbeiten.
- Klicken Sie auf der Seite Aufträge auf die Registerkarte Aufträge und dann auf den Namen des Auftrags, den Sie ausführen möchten.
-
Klicken Sie auf Ihrer Jobseite auf Job übergeben, um einen Job zu übergeben, der auf der aktuellen Konfiguration basiert.
-
Übernehmen Sie im Bereich "Auftrag einreichen" alle Standardwerte und klicken Sie erneut auf Auftrag einreichen, um Ihren Auftrag auszuführen.
Im Bereich "Auftrag einreichen" können Sie die Standardkonfigurationswerte, wie z. B. Instanzen, CPU, Speicher, Anzahl der Auftragswiederholungen und Auftragstimeout, überprüfen und optional ändern. Sie können entweder die Array-Größe oder Array-Indizes für die auszuführenden parallelen Auftragsinstanzen angeben. Geben Sie bei Array-Größe die Anzahl der Instanzen an, die für diesen Auftrag parallel ausgeführt werden sollen. Für Array-Indizes geben Sie eine kommagetrennte Liste für Ihren benutzerdefinierten Satz von Indizes an. Wenn Sie diesen Auftrag beispielsweise mit einem benutzerdefinierten Satz von 5
-Indizes ausführen möchten, geben Sie 3,12-14,25
an. Sie können auch einen angepassten Wert für die Job-Array-Größe angeben, der den Wert der automatisch injizierten Umgebungsvariablen JOB_ARRAY_SIZE
aktualisiert. Nachdem Sie diesen Job übergeben haben, zeigt das System den Status der Instanzen Ihres Jobs auf der Seite Jobdetails an. Wenn Sie die Array-Größe anstelle von Array-Indizes im Fenster "Auftrag
einreichen" im Abschnitt Configuration
der Seite "Auftragsdetails" angeben, werden diese Informationen als Array-Indizes bereitgestellt.
Auf Jobdetails zugreifen
Suchen Sie die Details zu Ihrem Job.
Nachdem Sie Ihren Job übergeben haben, sind die Ergebnisse der jeweiligen Jobausführung in der Konsole auf der Seite Jobausführungsdetails verfügbar. In der Konsole können Sie auch Details zu Ihrem Job und zu bestimmten Jobausführungen auf der Seite 'Jobs' anzeigen.
- Klicken Sie zum Anzeigen von Jobdetails auf die Registerkarte Jobs und anschließend auf den Namen des Jobs, mit dem Sie arbeiten wollen.
- Um Details zu einer bestimmten Jobausführung anzuzeigen, klicken Sie auf die Indexzunge Jobausführungen und anschließend auf den Namen der Jobausführung, mit der Sie arbeiten wollen.
Wenn eine der Instanzen Ihres Auftrags nicht ausgeführt werden konnte, können Sie die folgenden Maßnahmen ergreifen:
- Klicken Sie auf Fehlgeschlagene Indizes erneut ausführen, um den Auftrag für fehlgeschlagene Indizes erneut auszuführen. Überprüfen und ändern Sie optional die Konfigurationswerte, einschließlich der Array-Indizes, im Auftragsfenster Übermitteln. Im Abschnitt Array-Indizes werden automatisch die Indizes der fehlgeschlagenen Job-Run-Instanzen aufgelistet.
Informationen zur Fehlerbehebung bei häufigen Job-Run-Indexfehlern finden Sie unter "Verstehen, warum Job-Run-Indizes fehlschlagen können ".
- Klicken Sie auf Auftrag senden, um den Auftrag für die fehlgeschlagenen Indizes zu senden.
Sie können Jobprotokolle anzeigen, nachdem Sie Protokollierungsfunktionen hinzugefügt haben. Weitere Informationen finden Sie im Abschnitt zum Anzeigen von Jobprotokollen in der Konsole.
Job aktualisieren
Sie können Ihren Auftrag verwalten, indem Sie eine Feinabstimmung der Auftragskonfiguration vornehmen. Dazu gehört die Aktualisierung des Codes, des Container-Images, der Code-Argumente oder -Befehle, der Ressourcen der Laufzeitinstanz oder der Umgebungsvariablen.
Wenn der Auftrag bereit ist, können Sie ihn aktualisieren. Aktualisieren wir nun den zuvor erstellten Auftrag, um die Ausgabe der Begrüßungs- und Umgebungsvariablen zu ändern, indem wir eine Umgebungsvariable aktualisieren. Wenn eine Anfrage
an den Beispieljob icr.io/codeengine/helloworld
gesendet wird, liest der Job die Umgebungsvariable TARGET
und gibt "Hello ${TARGET}!"
aus. Wenn diese Umgebungsvariable leer ist, wird "Hello World!"
zurückgegeben. Weitere Informationen über den Code, der für dieses Beispiel verwendet wird, finden Sie unter helloworld
.
-
Navigieren Sie zur Jobseite.
- Klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts. Klicken Sie auf Jobs, um mit Ihren Jobs und Jobausführungen zu arbeiten.
- Klicken Sie auf der Seite Jobs auf die Registerkarte Jobs und dann auf den Namen des Jobs, den Sie aktualisieren möchten.
-
Klicken Sie auf der Registerkarte Konfiguration > Umgebungsvariablen auf Umgebungsvariable hinzufügen. Fügen Sie eine wörtliche Umgebungsvariable mit dem Namen
TARGET
und dem WertSunshine
hinzu.icr.io/codeengine/helloworld
gibt die NachrichtHello <value_of_TARGET>!>
aus. -
Klicken Sie auf Hinzufügen, um Ihre Umgebungsvariable hinzuzufügen.
-
Klicken Sie auf Bereitstellen.
-
Klicken Sie auf Job übergeben.
-
Überprüfen Sie im Teilfenster 'Job übergeben' die Standardkonfigurationswerte, zum Beispiel Instanzen, CPU, Speicher, Anzahl der Jobversuche und Jobzeitlimit; Sie können diese Werte auch optional ändern. Sie können entweder die Array-Größe oder Array-Indizes für die auszuführenden parallelen Auftragsinstanzen angeben. Geben Sie bei Array-Größe die Anzahl der Instanzen an, die für diesen Auftrag parallel ausgeführt werden sollen. Für Array-Indizes geben Sie eine kommagetrennte Liste für Ihren benutzerdefinierten Satz von Indizes an. Wenn Sie diesen Auftrag beispielsweise mit einem benutzerdefinierten Satz von
5
-Indizes ausführen möchten, geben Sie3,12-14,25
an. Klicken Sie erneut auf Job übergeben, um den Job auszuführen. Der Status der Instanzen des Jobs wird vom System auf der Jobdetailseite angezeigt. -
Durch die Anzeige der Jobprotokolle von der Konsole aus für diesen Job wird die Ausgabe des Jobs
Hello Sunshine!
.
Nächste Schritte
-
Nachdem Sie Ihren Job erstellt haben, übergeben Sie ihn zwecks Ausführung. Weitere Informationen finden Sie unter Job ausführen. Sie können Ihren Job mehrmals ausführen.
-
Wenn Sie Details zu Ihrem Job und zu Jobausführungen anzeigen möchten, nachdem Sie Ihren Job ausgeführt haben, finden Sie weitere Informationen unter Auf Jobdetails zugreifen.
-
Nachdem Ihr Job erstellt wurde, sollten Sie erwägen, Ihre Jobs ereignisgesteuert zu konfigurieren. Mithilfe von Ereignissubskriptionen können Sie Ihre Jobs mittels periodischer Zeitpläne auslösen oder Ihren Job so einstellen, dass er auf Ereignisse wie Dateiuploads reagiert.
-
Sie können Ihren Job aktualisieren und den zugehörigen referenzierten Code in irgendeiner der folgenden Arten verwenden, unabhängig davon, wie Sie Ihren Job erstellt oder zuvor aktualisiert haben.
-
Wenn Sie über ein Container-Image nach dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie bei der Erstellung (oder Aktualisierung) Ihres Auftrags lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Job aus Bildern in einem öffentlichen oder privaten Register erstellen (oder aktualisieren) und dann von Ihrem Joblauf aus auf das referenzierte Bild zugreifen.
Wenn Sie Ihren Job mit dem Befehl
job create
erstellt und die Option--build-source
angegeben haben, um das Container-Image aus der lokalen Quelle oder der Repository-Quelle zu erstellen, und Sie Ihren Job so ändern möchten, dass er auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrem Job entfernen. Führen Sie beispielsweiseibmcloud ce job update -n JOB_NAME --build-clear
aus. Nachdem Sie die Zuordnung des Builds zu Ihrem Job entfernt haben, können Sie den Job aktualisieren, sodass er auf ein anderes Image verweist. -
Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und den Job mit einer einzelnen Operation zu erstellen (oder zu aktualisieren). In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus Repository-Quellcode erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Image haben möchten, können Sie das Image mit Code Engine generieren, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.
-
Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie Code Engine das Image aus Ihrer Quelle generieren und den Job mit einem einzelnen CLI-Befehl erstellen lassen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus lokalem Quellcode über die Befehlszeilenschnittstelle erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Images haben möchten, können Sie das Image mit Code Engine erstellen, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.
Sie können beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle bearbeiten soll, wenn Sie die Entwicklung Ihrer Quelle für den Job weiterentwickeln. Nachdem das Image fertiggestellt wurde, können Sie den Job aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.
Wenn Sie Ihren aktualisierten Job ausführen, wird die neueste Version Ihres referenzierten Container-Image für die Jobausführung verwendet, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Jobausführung verwendet.
-
Benötigen Sie weitere Codebeispiele? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.