Funktion zum Starten eines Medienworkflowjobs
Erfahren Sie, wie Sie mit der vordefinierten Funktion "Spawner für Medienworkflowjob" in OCI Functions einen Medienworkflowjob auslösen, wenn Videoinhalt in einen Objektspeicher-Bucket hochgeladen wird.
Allgemeine Verwendungsszenarios
Häufige Möglichkeiten zur Verwendung der Job-Spawner-Funktion für Medienworkflows:
- Codieren Sie eine Videodatei in verschiedenen Auflösungen, nachdem Sie eine Videodatei in einen Bucket hochgeladen haben.
- Codieren Sie eine Audiodatei mit unterschiedlichen Bitraten, nachdem Sie eine Audiodatei in einen Bucket hochgeladen haben.
Zu den Services im Zusammenhang mit der Funktion "Media Workflow Job Spawner" gehören:
Geltungsbereich
Zu den Umfangsüberlegungen für diese Funktion gehören:
- Die vordefinierte Funktion berücksichtigt nur den Ereignistyp "Objekt - Erstellen". Die vordefinierte Funktion löst den Medienworkflowjob nur dann aus, wenn ein neues Objekt im Quell-Bucket erstellt wird.
- Die vordefinierte Funktion wartet nicht, bis der Medienworkflowjob abgeschlossen ist. Die Funktion löst einfach den Job aus.
Voraussetzungen und Empfehlungen
Im Folgenden finden Sie Best Practices bei der Verwendung dieser vordefinierten Funktion:
- Legen Sie den vordefinierten Funktionstimeout auf 300 Sekunden fest.
- Das mit der Anwendung verknüpfte VCN erleichtert den Zugriff auf andere OCI-Services über ein Servicegateway, ein Internetgateway oder ein NAT-Gateway.
Funktion zum Konfigurieren des Medienworkflowjobs
Führen Sie die folgenden Schritte aus, um eine Job-Spawner-Funktion für Medienworkflows zu konfigurieren:
Im Dialogfeld "Bereitstellen" werden die Aufgaben zum Bereitstellen der Funktion angezeigt (siehe Vordefiniertes Funktions-Deployment beenden).
Konfigurationsoptionen
Konfigurationsparameter
Name | Beschreibung | Erforderlich |
---|---|---|
MEDIA_WORKFLOW_ID |
ID des für den Job erstellten Medienworkflows. Der Standardwert ist null . |
Ja |
DESTINATION_BUCKET |
Name des Objektspeicher-Buckets, in dem Sie die Ausgabe des Jobs speichern möchten. Der Standardwert ist der hier angegebene Bucket. | Nein |
DESTINATION_COMPARTMENT_ID |
ID des Compartments, in dem der Ziel-Bucket vorhanden ist. Der Standardwert ist das Compartment, in dem Medienworkflow erstellt wird. | Nein |
PBF_LOG_LEVEL |
Logging-Ebene, Optionen sind DEBUG , INFO , WARN und ERROR . Der Standardwert ist INFO . |
Nein |
Berechtigungen
Für die Ausführung einer Funktion sind bestimmte IAM-Policys erforderlich. Wenn Sie beim Erstellen der Funktion die Option Keine dynamische Gruppe und IAM-Policy erstellen ausgewählt haben, müssen Sie die dynamische Gruppe und die IAM-Policy selbst definieren.
Um die richtigen Policys festzulegen, führen Sie die folgenden Schritte aus:
- Dynamische Gruppe mit der Regel erstellen:
ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'
- Konfigurieren Sie eine IAM-Policy mit der dynamischen Gruppe:
Allow dynamic-group <dynamic-group-name> to use media-workflow in compartment <dynamic-group-name> Allow dynamic-group <dynamic-group-name> to manage media-workflow-job in compartment <compartment-name> Allow dynamic-group <dynamic-group-name> to manage object-family in compartment <compartment-name> Allow dynamic-group <dynamic-group-name> to manage media-asset in compartment <compartment-name> Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
Ersetzen Sie
<function-ocid>
durch die OCID der Funktion, die Sie in den vorherigen Schritten erstellt haben. Ersetzen Sie
<dynamic-group-name>
durch den Namen der dynamischen Gruppe, die Sie mit der OCID der Funktion erstellt haben.Ersetzen Sie
<compartment_ocid>
durch die OCID des Compartments, das die Funktion enthält.Diese Funktion wird aufgerufen
Erstellen Sie zwei Bedingungen in der Ereignisregel:
- Bedingung als "Ereignistyp", Servicename als "Object Storage" und Ereignistyp als "Objekt - Erstellen".
- Bedingung als "Attribut", Attributname als "bucketName", und geben Sie den Namen des Quell-Buckets in "Attributwerte" an.
Der Aufruf der vordefinierten Funktion führt folgende Schritte aus:
- Wenn Sie eine Videodatei in den Objektspeicher einfügen, wird ein Ereignis ausgelöst.
- Eine Regel entspricht dem Ereignis und ruft die vordefinierte Funktion auf.
- Die vordefinierte Funktion leitet einen Job weiter, mit dem die Videodatei konvertiert und die Datei im Ziel-Bucket abgelegt wird.
Antwortbody
- Zeitstempel: Verwenden Sie UTC, um Zeitzonenprobleme zu vermeiden.
- Code: Die Funktion gibt einen 200-Code zurück, wenn die Aufgabe erfolgreich abgeschlossen wurde.
- Status: Die Funktion gibt "Erfolgreich" als Status zurück, wenn die Aufgabe erfolgreich abgeschlossen wurde.
- Daten: Ein JSON-Nachrichtentext, der spezifische Antwortinformationen für die Aufgabe enthält.
Beispiel
Das folgende Beispiel zeigt die JSON-Rückgabedaten:
{
"startTime": "2023-02-22T05:03:13.029Z",
"endTime": "2023-02-22T05:03:24.436Z",
"runTime": "PT11.407S",
"code": 200,
"status": "Success",
"data": {
"additionalInformation": {
"MediaWorkFlowJobId": "ocid1.mediaworkflowjob.oc1.us-ashburn-1.amaaaa...."
}
}
}
Fehler beheben
Allgemeine Statuscodes für OCI Functions
In der folgenden Tabelle werden allgemeine OCI Functions-Fehler zusammengefasst, die bei der Arbeit mit vordefinierten Funktionen auftreten können:
Fehlercode | Fehlermeldung | Maßnahme |
---|---|---|
200 | Erfolgreich | - |
404 | NotAuthorizedOrNotFound | Stellen Sie sicher, dass die erforderlichen Policys konfiguriert sind (siehe Ausführen von Fn-Projekt-CLI-Befehlen gibt einen 404-Fehler zurück). |
444 | Timeout |
Die Verbindung zwischen dem Client und OCI Functions wurde während der Funktionsausführung unterbrochen (siehe Wenn Sie eine Funktion aufrufen, meldet der Client einen Timeout, und in den Logs der Funktion wird ein 444-Fehler angezeigt). Ein erneuter Versuch könnte das Problem lösen. Beachten Sie, dass die meisten Clients einen inneren Timeout von 60 Sekunden aufweisen. Selbst wenn das vordefinierte Funktionstimeout auf 300 Sekunden gesetzt ist, ist möglicherweise Folgendes erforderlich:
Weitere Informationen finden Sie unter Funktionen aufrufen. |
502 504 | (verschiedene) | Die meisten Probleme geben einen 502-Statuscode zurück (siehe Aufrufen einer Funktion gibt eine Meldung "Funktion nicht erfolgreich" und einen 502-Fehler zurück). Ein 502-Fehler mit der Meldung "Fehler beim Empfangen der Funktionsantwort" kann durch Erhöhung der Speicherzuweisung behoben werden. Eine 502 kann gelegentlich auftreten, wenn sich die Funktion in einem vorübergehenden Zustand befindet. Ein erneuter Versuch könnte das Problem lösen. |
Um die Ursache weiter zu ermitteln, aktivieren Sie Loggingfeatures für die vordefinierte Funktion (siehe Funktionslogs speichern und anzeigen). Ausführliche Informationen zur Fehlerbehebung bei einer Funktion finden Sie unter Fehlerbehebung bei OCI Functions.
Medienworkflow-Jobspawner - Vordefinierte Funktionsstatuscodes
In der folgenden Tabelle sind die Fehler zusammengefasst, die bei der Arbeit mit dieser vordefinierten Funktion auftreten können:
Fehlercode | Fehlermeldung | Maßnahme |
---|---|---|
400 | Funktions-Payload hat falschen Ereignistyp | Prüfen Sie, ob der Ereignistyp "Object - Create" lautet. |
Um die Ursache weiter zu ermitteln, aktivieren Sie Loggingfeatures für die vordefinierte Funktion (siehe Funktionslogs speichern und anzeigen).
Tipps zur Loganalyse
Alle vordefinierten Funktionen bieten eine Option zur Angabe der Logging-Ebene als Konfigurationsparameter. Sie können die Logging-Ebene auf DEBUG
setzen, um weitere Informationen zu erhalten.
Da eine Anwendung mehrere Funktionen hat, werden die vordefinierten Funktionslogeinträge durch das Präfix "PBF | <PBF NAME>" identifiziert.
Beispiel: Ein Logeintrag für die vordefinierte Funktion "Media Workflow Job Spawner" sieht ungefähr wie folgt aus:
"PBF | Media Workflow Job Spawner | INFO | 2023-02-07T18:06:50.809Z | Fetching details from Events JSON"