Jobs ausführen und aktualisieren
In diesem Lernprogramm wird in der Konsole von IBM Cloud® Code Engine ein Stapeljob ausgeführt.
Ein Job 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 „ Code Engine “-Konsole zu nutzen, rufen Sie die Seite Code Engine Übersicht auf.
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 Code Engine Preise.
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 „ Mit der Erstellung beginnen “.
- 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.
- Wählen Sie Job aus.
- Geben Sie einen Namen für den Job ein und geben Sie
icr.io/codeengine/helloworldals 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 zur Jobseite.
- Klicken Sie auf der Seite „ Code Engine-Projekte“ auf den Namen Ihres Projekts.
- Klicken Sie auf „ Jobs “ und anschließend auf die Registerkarte „ Jobs “.
- Klicken Sie 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 übermitteln“ alle Standardwerte und klicken Sie erneut auf „Auftrag übermitteln“, um Ihren Auftrag auszuführen.
Im Bereich „Auftrag übermitteln“ können Sie die Standardkonfigurationswerte wie Instanzen, CPU, Arbeitsspeicher, Anzahl der Wiederholungsversuche und Zeitlimit für den Auftrag überprüfen und gegebenenfalls ändern. Sie können entweder die Array-Größe oder Array-Indizes für die auszuführenden parallelen Auftragsinstanzen angeben. Geben Sie unter „Array-Größe“ die Anzahl der Instanzen an, die für diesen Auftrag parallel ausgeführt werden sollen. Geben Sie
für Array-Indizes eine durch Kommas getrennte Liste Ihrer benutzerdefinierten Indizes an. Um diesen Job beispielsweise mit einem benutzerdefinierten Satz von „ 5 “-Indizes auszuführen, 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 im Bereich „Auftrag übermitteln“ unter „ Configuration “ auf der Seite „Auftragsdetails“
anstelle der Array-Indizes die Array-Größe angeben, werden diese Informationen als Array-Indizes angezeigt.
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.
Sollte eine der Instanzen Ihres Jobs nicht ausgeführt worden sein, können Sie folgende Maßnahmen ergreifen:
- Klicken Sie auf „Fehlgeschlagene Indizes erneut ausführen“, um den Auftrag für die Indizes, bei denen ein Fehler aufgetreten ist, erneut auszuführen. Überprüfen Sie im Bereich „Auftrag übermitteln“ die Konfigurationswerte, einschließlich der Array-Indizes, und ändern Sie diese gegebenenfalls. Im Abschnitt „Array-Indizes“ werden automatisch die Indizes der fehlgeschlagenen Jobausführungen aufgelistet.
Informationen zur Fehlerbehebung bei häufigen Job-Run-Index-Fehlern finden Sie unter Gründe für das Fehlschlagen von Job-Run-Indizes.
- Klicken Sie auf „Auftrag übermitteln“, um den Auftrag für die fehlerhaften Indizes zu übermitteln.
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 Job verwalten, indem Sie die Jobkonfiguration anpassen. Dazu gehören die Aktualisierung des Codes, des Container-Images, der Code-Argumente oder -Befehle, der Ressourcen der Laufzeitinstanz sowie der Umgebungsvariablen.
Wenn sich der Auftrag im Status „Bereit“ befindet, 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 “ aus 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 “ und anschließend auf die Registerkarte „ Jobs “.
- Klicken Sie auf den Namen des Auftrags, 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
TARGETund dem WertSunshinehinzu.icr.io/codeengine/helloworldgibt 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 unter „Array-Größe“ die Anzahl der Instanzen an, die für diesen Auftrag parallel ausgeführt werden sollen. Geben Sie für Array-Indizes eine durch Kommas getrennte Liste Ihrer benutzerdefinierten Indizes an. Um diesen Job beispielsweise mit einem benutzerdefinierten Satz von „
5“-Indizes auszuführen, geben Sie „3,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. -
Von Anzeigen von Auftragsprotokollen über die Konsole für diesen Auftrag; die Ausgabe des Auftrags lautet
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 gemäß dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie beim Erstellen (oder Aktualisieren) Ihres Jobs lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Job anhand von Images aus einem öffentlichen oder privaten Registry erstellen (oder aktualisieren) und anschließend während der Ausführung Ihres Jobs auf das referenzierte Image zugreifen.
Wenn Sie Ihren Job mit dem Befehl
job createerstellt und die Option--build-sourceangegeben 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-clearaus. 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 Image haben möchten, können Sie das Image mit Code Engine generieren, 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 das Samples for IBM Cloud Code Engine GitHub repo an.