Arbeitsanforderungen

Arbeitsanforderungen helfen Ihnen, Vorgänge mit langer Ausführungszeit zu überwachen, wie Datenbankbackups oder das Provisioning von Compute-Instanzen.

Wenn Sie einen Vorgang mit langer Ausführungszeit starten, erstellt der Service eine Arbeitsanforderung. Eine Arbeitsanforderung ist ein Aktivitätslog, mit dem Sie die einzelnen Schritte im Fortschritt des Vorgangs verfolgen können. Jede Arbeitsanforderung verfügt über eine OCID , mit der Sie programmgesteuert mit einer Arbeitsanforderung interagieren und die Sie für die Automatisierung verwenden können.

Arbeitsanforderungen stellen in der Regel Informationen zum Status des zugehörigen Workflows, zu Fehlern und Logdateien und eine Liste von Ressourcen bereit, die vom Workflow betroffen sind.

Hinweis

Einige Oracle Cloud Infrastructure-Services wie Compute und Database unterstützen Arbeitsanforderungen über die Arbeitsanforderungs-API, die den Vorgang GetWorkRequest enthält.

Einige Services bieten Arbeitsanforderungen, die von der Service-API und nicht von der in diesem Thema beschriebenen API für Arbeitsanforderungen unterstützt werden. Diese Service-APIs umfassen Vorgänge, die ähnlich wie der Vorgang GetWorkRequest funktionieren, der von der Arbeitsanforderungs-API verwendet wird.

Weitere Einzelheiten finden Sie in der Referenzdokumentation für die Arbeitsanforderungs-API jedes Service. Links dazu finden Sie im Abschnitt Weitere Informationen und APIs für unterstützte Services.

Erste Schritte mit Arbeitsanforderungen

Arbeitsanforderungen sind in den folgenden Szenarios hilfreich:

  • Wenn ein Vorgang nicht erfolgreich verläuft, können Sie mit einer Arbeitsanforderung bestimmen, welcher Schritt des Prozesses einen Fehler enthielt. Arbeitsanforderungen erfassen asynchrone Validierungsfehler.
  • Einige Vorgänge wirken sich auf mehrere Ressourcen aus. Beispiel: Das Erstellen eines Instanzpools wirkt sich auch auf Instanzen und Instanzkonfigurationen aus. Eine Arbeitsanforderung enthält eine Liste der Ressourcen, auf die sich ein Vorgang auswirkt.
  • Bei Workflows, die sequenzielle Vorgänge erfordern, können Sie die Arbeitsanforderung jedes Vorgangs überwachen und sich vergewissern, dass der Vorgang abgeschlossen wurde, bevor Sie mit dem nächsten Vorgang fortfahren. Beispiel: Angenommen, Sie möchten einen Instanzpool erstellen, für den Autoscaling aktiviert ist. Dazu müssen Sie zuerst den Instanzpool erstellen und anschließend Autoscaling konfigurieren. Sie können die Arbeitsanforderung zum Erstellen des Instanzpools überwachen, um festzustellen, wann dieser Workflow abgeschlossen ist. Nach Abschluss des Instanzpoolworkflows können Sie Autoscaling konfigurieren.

Arbeitsanforderungen werden 12 Stunden lang aufbewahrt.

Erforderliche IAM-Policy

Um Oracle Cloud Infrastructure zu verwenden, muss Ihnen ein Administrator in einer Policy  Sicherheitszugriff erteilen. Dieser Zugriff ist erforderlich, unabhängig davon, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Meldung erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Administrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment  Sie arbeiten sollen.

Für Administratoren: Die Berechtigungen, mit denen Benutzer die Arbeitsanforderungen, Logs und Fehlermeldungen für einen Vorgang anzeigen können, variieren je nach Service. Bei manchen Services erben Arbeitsanforderungen die Berechtigungen des Vorgangs, der die Arbeitsanforderung startet. Bei anderen Services erfordern Arbeitsanforderungen separate Berechtigungen. Weitere Informationen finden Sie in der Policy-Referenz.

Wenn Sie mit Policys nicht vertraut sind, finden Sie weitere Informationen unter Erste Schritte mit Policys und Allgemeine Policys.

Arbeitsanforderungsstatus

Arbeitsanforderungen bieten einen Einblick in den Fortschritt von asynchronen Vorgängen mit langer Ausführungszeit. Der Status einer Arbeitsanforderung gibt den Fortschritt des Vorgangs an.

Zu den Statuswerten gehören in der Regel Werte wie IN_PROGRESS, FAILED oder SUCCEEDED. Da jeder Service oder Vorgang, der Arbeitsanforderungen unterstützt, eine eigene API zum Abrufen des Status bereitstellt, können die spezifischen Werte, die in einer Arbeitsanforderung zurückgegeben werden, je nach Service und Vorgang variieren. Informationen zu den Statusattributen, die von Arbeitsanforderungen für jeden Service unterstützt werden, finden Sie unter Arbeitsanforderungsstatus.

Validierungsfehler beheben

Arbeitsanforderungen erfassen asynchrone Validierungsfehler. Wenn ein asynchroner Vorgang nicht erfolgreich verläuft, können Sie mit einer Arbeitsanforderung bestimmen, wo der Fehler im Prozess aufgetreten ist.

Synchrone Fehler treten beim anfänglichen Aufruf der Service-API auf und werden von der Service-API zurückgegeben. Asynchrone Fehler treten während des Workflows auf, der nach dem ersten API-Aufruf auftritt, und werden von der Arbeitsanforderung zurückgegeben. Auf einen erfolgreichen Aufruf der Service-API, der eine HTTP 200-Antwort ("Anforderung war erfolgreich") zurückgibt, kann ein asynchroner Fehler folgen, der von der Arbeitsanforderungs-API erfasst wird.

Beispiel: Wenn Sie eine Compute-Instanz erstellen, wird ein API-Aufruf an den LaunchInstance-Vorgang gesendet. Zu diesem Zeitpunkt erfolgt eine synchrone Validierung. Wenn ein Fehler auftritt, wird eine HTTP 4xx-Antwort zurückgegeben. Wenn der Aufruf erfolgreich verläuft, wird eine HTTP 200-Antwort zurückgegeben, und der Workflow "Instanz erstellen" wird gestartet.

Während der Workflow zum Erstellen von Instanzen fortgesetzt wird, werden zusätzliche Validierungs- und Fehlerprüfungen ausgeführt. Außerdem wird eine asynchrone Arbeitsanforderung erstellt, um den Fortschritt des Workflows zu verfolgen. Die Antwort auf den LaunchInstance-Vorgang enthält die OCID der Arbeitsanforderung im opc-work-request-id-Header. Sie können den Status der Arbeitsanforderung jederzeit überwachen, indem Sie den GetWorkRequest-Vorgang aufrufen und die Arbeitsanforderungs-ID übergeben. Wenn während des Workflows ein Fehler auftritt, können Sie eine Fehlerliste abrufen, indem Sie ListWorkRequestErrors aufrufen und die Arbeitsanforderungs-ID übergeben.

Die Arbeitsanforderung selbst verbleibt in einer Queue, bis der Vorgang abgeschlossen ist.

Ausführliche Informationen zu Arbeitsanforderungen, einschließlich Filtern der Anforderungsantwort und einer Beispielanforderung und -antwort, finden Sie unter Asynchrone Arbeitsanforderungen.

Beispielvalidierungsworkflow einer Arbeitsanforderung

Das folgende Diagramm zeigt einen Beispielworkflow zum Erstellen einer Instanz, bei dem die synchrone Validierung erfolgreich und die asynchrone Validierung nicht erfolgreich verläuft.

  1. Sie rufen den Endpunkt LaunchInstance in der Compute-API auf.
  2. Eine synchrone Validierung wird ausgeführt, und Sie erhalten eine HTTP 2xx-Antwort von der Compute-API. Die Antwort enthält die OCID der Arbeitsanforderung im opc-work-request-id-Header.
  3. Der Workflow zum Erstellen einer Instanz wird gestartet, und die asynchrone Validierung erfolgt im gesamten Workflow. Es tritt ein Fehler auf, und die Validierung verläuft nicht erfolgreich.
  4. Die Compute-API füllt die Arbeitsanforderungsfehler auf und kennzeichnet die Arbeitsanforderung als nicht erfolgreich.
  5. Um die Arbeitsanforderung zu überwachen, rufen Sie GetWorkRequest in der Arbeitsanforderungs-API auf und übergeben die Arbeitsanforderungs-ID im opc-work-request-id-Header.
  6. Wenn Sie feststellen, dass die Arbeitsanforderung nicht erfolgreich war, rufen Sie ListWorkRequestErrors in der Arbeitsanforderungs-API auf und übergeben die Arbeitsanforderungs-ID, um eine Fehlerliste abzurufen.
  7. Die Arbeitsanforderungs-API gibt eine Liste von Fehlern zurück, mit der Sie die Fehlerursache ermitteln können.
Übersichtsdiagramm über den Workflow zum Erstellen einer Instanz mit synchroner und asynchroner Validierung.

Arbeitsanforderungen in der Konsole anzeigen

Mit der Konsole können Sie die mit einer bestimmten Arbeitsanforderung verknüpften Logmeldungen, Fehlermeldungen und Ressourcen anzeigen. Die Schritte zum Anzeigen einer Arbeitsanforderung können je nach Service und Ressource, deren Arbeitsanforderungen Sie anzeigen möchten, variieren.

  1. Navigieren Sie zu der Ressource, deren Arbeitsanforderungen Sie anzeigen möchten.

    Beispiel: So zeigen Sie die Arbeitsanforderungen für eine Compute-Instanz an: Öffnen Sie das Navigationsmenü, und klicken Sie auf Compute. Klicken Sie unter Compute auf Instanzen.

  2. Wenn die Ressource in einer Listenansicht angezeigt wird, klicken Sie auf den Ressourcennamen, um die Ressourcendetails anzuzeigen.
  3. Klicken Sie unter Ressourcen auf Arbeitsanforderungen. Der Status aller Arbeitsanforderungen wird auf der Seite angezeigt.
  4. Wenn Sie die mit einer bestimmten Arbeitsanforderung verknüpften Logmeldungen, Fehlermeldungen und Ressourcen anzeigen möchten, klicken Sie auf den Vorgangsnamen. Wählen Sie anschließend eine Option im Abschnitt Weitere Informationen aus.

    Für zugehörige Ressourcen können Sie neben einer Ressource auf das Menü Aktionen (Menü "Aktionen") klicken, um die OCID der Ressource zu kopieren.

Weitere Informationen und APIs für unterstützte Services

Informationen zur Verwendung der API und zu Signieranforderungen finden Sie unter REST-API-Dokumentation und Sicherheitszugangsdaten. Informationen zu SDKs finden Sie unter SDKs und die CLI.

Mit den folgenden API-Vorgängen können Sie den Status von Arbeitsanforderungen überwachen: