Job aktualisieren
Sie können Änderungen an einem definierten Job vornehmen und den aktualisierten Job über die Konsole oder die CLI ausführen. Zu den Änderungen an Ihrem Job kann die Aktualisierung des Code-Container-Images, der Code-Argumente oder -Befehle, der Ressourcen der Laufzeitinstanz oder der Umgebungsvariablen gehören.
Bei jeder Ausführung Ihres Jobs 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.
Übergebene Stapeljobs werden, sofern möglich, parallel ausgeführt. Wenn die Anzahl oder Größe der eingereichten Aufträge die konfigurierten Quotengrenzen überschreitet, z. B. die maximale Anzahl der laufenden Instanzen, werden die Code Engine Aufträge in eine Warteschlange gestellt und ihre Ausführung verzögert, bis genügend Aufträge abgeschlossen sind. Weitere Informationen zu Begrenzungen für Jobs einschließlich Speicher und CPU finden Sie unter Grenzwerte und Kontingente für Code Engine.
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.
Aktualisieren eines Jobs über die Konsole
Wenn ein Job bereit ist, können Sie den Job aktualisieren. Aktualisieren wir den zuvor erstellten Job myjob, um die Ausgabe der Begrüßungs- und Umgebungsvariablen zu ändern, indem wir eine Umgebungsvariable aktualisieren. Wenn eine
Anfrage an diesen 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.
-
Ändern Sie diesmal im Fenster " Job übergeben" den CPU-Wert auf eine der gültigen CPU-Auswahlen für den angegebenen Speicher. Beachten Sie, dass Sie gültige Speicher- und CPU-Kombinationen verwenden müssen. Klicken Sie erneut auf Job einreichen, um diesen Job auszuführen. Das System zeigt den Status Ihres Jobs auf der Seite Jobdetails an. Beachten Sie den aktualisierten CPU-Wert im Abschnitt
Configurationin den Jobdetails. -
Wenn Sie für diesen Job Jobprotokolle über die Konsole anzeigen, lautet die Ausgabe des aktualisierten Jobs
Hello Sunshine!.
Aktualisieren eines Jobs mit der CLI
Mit der Befehlszeilenschnittstelle können Sie eine bestehende Jobkonfiguration aktualisieren oder Ihre Änderungen bei einem neuen Joblauf angeben.
Aktualisieren einer Jobkonfiguration mit der CLI
Sie können eine bestehende Jobkonfiguration mit dem Befehl ibmcloud ce job update aktualisieren.
-
Verwenden Sie den Befehl
job update, um den Jobmyjobzu aktualisieren und ein anderes Bild zu verwenden.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobFühren Sie den Befehl
ibmcloud ce job get -n myjobaus, um die Details des aktualisierten Jobs anzuzeigen.Beispielausgabe
Name: myjob ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Last Job Run: Name: myjob-jobrun-abcde Age: 32d Created: 2021-08-06T13:50:02-04:00 Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 [...] -
Führen Sie den Befehl
ibmcloud ce jobrun submitaus, um einen Job auszuführen, der auf diese aktualisierte Jobkonfiguration verweist. Für den Befehljobrun submitverwenden Sie die Option--job, um auf eine definierte Job-Konfiguration zu verweisen. Während die Option--namenicht erforderlich ist, wenn die Option--jobangegeben ist, gibt der folgende Beispielbefehl die Option--namean, um einen Namen für diesen Joblauf anzugeben.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
Führen Sie
ibmcloud ce jobrun get -n myjobrun1aus, um Details zu diesem Joblauf anzuzeigen. Beachten Sie, dass das referenzierte Imageicr.io/codeengine/testjobist, das auf der aktualisierten Jobkonfiguration basiert.Beispielausgabe
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-15T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 15s 15s Running True 11s 11s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 16s (x3 over 20s) batch-job-controller Updated JobRun "myjobrun1" Normal Completed 16s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Succeeded 0 20s
Aktualisieren eines Joblaufs mit der CLI
Sie können Änderungen für einen Joblauf mit dem Befehl ibmcloud ce jobrun resubmit angeben. Mit dem Befehl jobrun submit wird ein Joblauf, der sich auf einen früheren Joblauf bezieht, erneut gesendet.
-
Verwenden Sie den Befehl
jobrun resubmit, um den Joblaufmyjobrun1erneut zu übertragen und die Array-Indizes von0auf1-4zu ändern. Während die Option--namefür den Befehljobrun resubmitnicht erforderlich ist, gibt der folgende Beispielbefehl die Option--namean, um einen Namen für diesen Joblauf anzugeben.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
Führen Sie den Befehl
ibmcloud ce jobrun get -n myjobrunresubmitaus, um die Details des aktualisierten Joblaufs anzuzeigen. Beachten Sie, dass der Wert der Array-Indizes für diesen Joblauf aktualisiert wird.Beispielausgabe
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 1-4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 34s Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 38s 38s Running True 36s 36s Complete True 34s 34s Events: Type Reason Age Source Messages Normal Updated 36s (x7 over 40s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 36s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-1-0 0/1 Succeeded 0 40s myjobrunresubmit-2-0 0/1 Succeeded 0 40s myjobrunresubmit-3-0 0/1 Succeeded 0 40s myjobrunresubmit-4-0 0/1 Succeeded 0 40s
Mit der CLI übermittelte (oder erneut übermittelte) Job-Läufe, die nicht auf eine definierte Job-Konfiguration verweisen, können von der Konsole aus nicht angezeigt werden.