Arbeiten mit Jobs und Jobausführungen

In diesem Abschnitt erfahren Sie, wie Sie in IBM Cloud® Code Engine Jobs ausführen. 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

Code Engine stellt CRD-Methoden (CRD = Custom Resource Definition) bereit. Weitere Informationen finden Sie in den Batch-CRD-Methoden.

Wie kann ich meinen Code als Code Engine-Jobkomponente ausführen?

Unabhängig davon, ob Ihr Code als Quellcode in einer lokalen Datei oder in einem „ Git “-Repository vorliegt oder ob es sich um ein Container-Image handelt, das in einer öffentlichen oder privaten Registry gespeichert ist: „ Code Engine “ bietet Ihnen eine optimierte Möglichkeit, Ihren Code als Job auszuführen.

  • Wenn Sie über ein Container-Image gemäß dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie beim Erstellen Ihres Jobs lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Job auf der Grundlage von Images aus einem öffentlichen oder privaten Registry erstellen und anschließend während der Ausführung Ihres Jobs auf das referenzierte Image zugreifen.

  • Wenn Sie mit Quellcode arbeiten, der sich in einem Repository unter Git befindet, können Sie den Speicherort Ihres Quellcodes angeben. Code Engine übernimmt dann in einem einzigen Schritt die Erstellung des Images aus Ihrem Quellcode und die Einrichtung des Jobs. 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 den Build Ihres Image möchten, können Sie das Image mit Code Engine erstellen, bevor Sie den Job generieren und ausführen.

  • Wenn Sie mit Quellcode auf einem lokalen Rechner beginnen, können Sie den Speicherort Ihres Quellcodes angeben, und Code Engine übernimmt dann mit einem einzigen CLI-Befehl die Erstellung des Images aus Ihrem Quellcode sowie die Erstellung des Jobs. 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 den Build Ihres Image möchten, können Sie das Image mit Code Engine erstellen, bevor Sie den Job generieren und ausführen.

Nachdem Sie Ihren Job erstellt und ausgeführt haben, können Sie Ihren Job auch aktualisieren, indem Sie irgendeine der oben genannten Methoden ausführen, unabhängig davon, wie Sie Ihren Job erstellt oder zuvor aktualisiert haben.

Wenn Sie mit Aufträgen arbeiten, sollten Sie die folgenden wichtigen Punkte beachten.

  • Im Gegensatz zu Anwendungsimages verfügen die Job-Images nicht über einen HTTP-Server.
  • Das ausführbare Programm im Image muss mit dem Statuswert Null beendet werden, damit es als erfolgreich gilt.
  • Das Image kann von einer öffentlichen oder privaten Image-Registry heruntergeladen werden. Weitere Informationen finden Sie unter Auf Container-Registrys zugreifen.

Wenn Sie Ihren Job ausführen, wird die neueste Version Ihres referenzierten Container-Image für die Jobausführung verwendet, sofern für das Image kein Tag angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Jobausführung verwendet.

Hinweise zur HTTP-Handhabung

Wenn Sie mit Jobs (oder Apps) arbeiten, ist es hilfreich, die grundlegende HTTP-Handhabung in Code Engine zu kennen. Siehe Hinweise zur HTTP-Handhabung

Optionen für Erstellung und Ausführung von Jobs

Hier finden Sie Informationen zu den Optionen, die Sie beim Erstellen oder Ausführen Ihres Jobs angeben können. Je nachdem, ob Sie die Konsole oder die Befehlszeilenschnittstelle verwenden, sind möglicherweise andere Optionen verfügbar.

Speicher und CPU für Jobs

Wenn Sie Ihren Job starten, können Sie festlegen, wie viel Arbeitsspeicher und CPU-Leistung Ihr Job beanspruchen darf. Diese Angaben variieren, je nachdem, ob Ihr Job rechenintensiv oder speicherintensiv ist oder sich durch eine ausgewogene Nutzung auszeichnet.

Standardmäßig werden Ihrem Job 4 GB Speicher und 1 vCPU zugeordnet. Weitere Informationen zum Auswählen von Speicher und CPU finden Sie unter Unterstützte Speicher-und CPU-Kombinationen.

Job mit Befehlen und Argumenten erstellen und ausführen

Sie können beim Erstellen oder Ausführen Ihres Jobs Befehle und Argumente für den Job definieren, die zur Laufzeit verwendet werden sollen.

Sie können Ihrem Job über die Befehlszeilenschnittstelle oder die Konsole Befehle und Argumente hinzufügen.

Verwenden Sie zum Hinzufügen von Befehlen und Argumenten in der Konsole die Felder Command und Arguments.

Wenn Sie Befehle und Argumente in der Befehlszeilenschnittstelle hinzufügen möchten, fügen Sie die Optionen --cmd und --args zum Befehl job create bzw. jobrun submit hinzu.

Weitere Informationen zum Definieren von Befehlen und Argumenten finden Sie unter Befehle und Argumente für Code Engine-Workloads definieren.

Job mit Umgebungsvariablen erstellen und ausführen

Sie können Umgebungsvariablen als Schlüssel/Wert-Paare definieren und festlegen, die von Ihrem Job bei der Ausführung verwendet werden können.

Umgebungsvariablen können Sie über die Konsole oder die Befehlszeilenschnittstelle beim Erstellen Ihres Jobs oder beim Aktualisieren eines vorhandenen Jobs definieren. Sie können Umgebungsvariablen für Ihre Jobs erstellen, die eine vollständige Konfigurationszuordnung (oder einen vollständigen geheimen Schlüssel) oder einzelne Schlüssel in einer Konfigurationszuordnung (oder einem geheimen Schlüssel) referenzieren.

Weitere Informationen zum Definieren von Umgebungsvariablen finden Sie unter Mit Umgebungsvariablen arbeiten.

Job mit geheimen Schlüsseln und Konfigurationszuordnungen erstellen und ausführen

In „ Code Engine “ können Secrets und ConfigMaps von Ihrem Job mithilfe von Umgebungsvariablen verwendet werden.

Sowohl bei geheimen Schlüsseln als auch bei Konfigurationszuordnungen handelt es sich um Schlüssel/Wert-Paare. Wenn sie Umgebungsvariablen zugeordnet sind, werden die NAME=VALUE-Beziehungen so konfiguriert, dass der Name der Umgebungsvariablen dem 'Schlüssel' der einzelnen Einträge in diesen Zuordnungen entspricht und der Wert der Umgebungsvariablen dem 'Wert' des jeweiligen Schlüssels.

Ihr Job kann Umgebungsvariablen verwenden, um eine vollständige Konfigurationszuordnung (oder einen vollständigen geheimen Schlüssel) oder einzelne Schlüssel in einer Konfigurationszuordnung (oder einem geheimen Schlüssel) zu referenzieren.

Weitere Informationen finden Sie unter Geheime Schlüssel mithilfe von Umgebungsvariablen referenzieren und Konfigurationszuordnungen mithilfe von Umgebungsvariablen referenzieren.

Was ist, wenn mein Job unbegrenzt ausgeführt werden soll?

Normalerweise sind Jobs so konzipiert, dass sie einmal ausgeführt und mit einer maximalen Ausführungszeit beendet werden.

Angenommen, Sie möchten einen Datenspeicher eines anderen Anbieters ständig abfragen. Sie können eine Anwendung erstellen. Der App-Port muss jedoch offen bleiben, um HTTP-Anforderungen zu verarbeiten. Wenn Sie HTTP-Anforderungen nicht verarbeiten wollen, können Sie stattdessen einen Job erstellen, der ohne maximale Ausführungszeit und ohne Zeitlimitüberschreitung ausgeführt wird.

Mit Code Enginekönnen Sie die mode Ihres Jobs auswählen. Verwenden Sie für Jobs, für die eine maximale Ausführungszeit gilt, den Modus task für Ihre Jobs. Fehlgeschlagene Instanzen werden gemäß dem Grenzwert für Jobwiederholungen erneut gestartet. Dieser Modus ist das Standardverhalten für Jobs.

Wenn Sie einen Job erstellen möchten, der unbegrenzt ausgeführt werden kann und kein Zeitlimit hat, verwenden Sie den Modus daemon für Ihre Jobs. Fehlgeschlagene Instanzen werden automatisch unbegrenzt erneut gestartet.

Bei „ Code Engine “ zahlen Sie nur für die Ressourcen, die Sie tatsächlich nutzen. Wenn Ihr Job im Modus daemon ausgeführt wird, beachten Sie, dass der Job immer ausgeführt wird, bis Sie den Job löschen.

Weitere Informationen finden Sie unter Einen Job erstellen und ausführen, der unbegrenzt ausgeführt wird.

Hinweise zu Jobkontingenten

Wenn Sie mit Anwendungen, Funktionen und Stapeljobs arbeiten, werden diese Ressourcen im Kontext eines Code Engine-Projekts ausgeführt. Ressourcenkontingente werden pro Projekt definiert und Grenzwerte gelten für Anwendungen, Funktionen und Stapeljobs.

Weitere Informationen zu Code Engine-Grenzwerte finden Sie unter Grenzwerte und Kontingente für Code Engine.

Aufräumen nach abgeschlossenen Arbeitsgängen

Aufträge, die abgeschlossen sind, werden nach einer Woche automatisch gelöscht.

Nächste Schritte

Sind Sie nun mit den Schlüsselkonzepten für die Arbeit mit Code Engine-Jobs vertraut und bereit zum Erstellen und Ausführen von Jobs? Siehe

Weitere Informationen zur Arbeit mit Aufträgen finden Sie unter