IBM Cloud Docs
Jobs ausführen und aktualisieren

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!.

  1. Öffnen Sie die Übersichtsseite Code Engine.
  2. Wählen Sie Los geht's aus.
  3. Wählen Sie Job aus.
  4. 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.
  5. 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 unter helloworld.
  6. 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.

  1. 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.
  2. Klicken Sie auf Ihrer Jobseite auf Job übergeben, um einen Job zu übergeben, der auf der aktuellen Konfiguration basiert.

  3. Ü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:

  1. 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 ".

  1. 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.

  1. 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.
  2. Klicken Sie auf der Registerkarte Konfiguration > Umgebungsvariablen auf Umgebungsvariable hinzufügen. Fügen Sie eine wörtliche Umgebungsvariable mit dem Namen TARGET und dem Wert Sunshine hinzu. icr.io/codeengine/helloworld gibt die Nachricht Hello <value_of_TARGET>!> aus.

  3. Klicken Sie auf Hinzufügen, um Ihre Umgebungsvariable hinzuzufügen.

  4. Klicken Sie auf Bereitstellen.

  5. Klicken Sie auf Job übergeben.

  6. Ü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 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.

  7. 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 beispielsweise ibmcloud 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.