Funzione di generazione job workflow multimediale

Scopri come utilizzare la funzione predefinita Job Spawner del workflow multimediale in OCI Functions per attivare un job del workflow multimediale quando il contenuto video viene caricato in un bucket di storage degli oggetti.

Scenario di utilizzo comune

Di seguito sono riportati alcuni dei modi comuni per utilizzare la funzione Generatore job workflow multimediale.

  • Codifica di un file video con risoluzioni diverse dopo aver caricato un file video in un bucket.
  • Codifica di un file audio a velocità di bit diverse dopo aver caricato un file audio in un bucket.

I servizi correlati alla funzione di generazione dei job del workflow multimediale includono:

Ambito

Le considerazioni sull'ambito di questa funzione includono:

  • La funzione predefinita rispetta solo il tipo di evento "Oggetto - Crea". La funzione predefinita attiva il job del workflow multimediale solo se nel bucket di origine viene creato un nuovo oggetto.
  • La funzione predefinita non attende il completamento del job del workflow multimediale. La funzione semplicemente innesca il lavoro.

Prerequisiti e suggerimenti

Di seguito sono riportate le procedure consigliate per l'utilizzo di questa funzione predefinita.

  • Impostare il timeout della funzione predefinita su 300 secondi.
  • Assicurarsi che la VCN collegata all'applicazione faciliti l'accesso ad altri servizi OCI utilizzando un gateway di servizi, un gateway Internet o un gateway NAT.

Configurazione della funzione di generazione dei job del workflow multimediale

Per configurare una funzione di generazione dei job del workflow multimediale, effettuare le operazioni riportate di seguito.

  1. Nella pagina Funzioni predefinite, selezionare Provider job workflow multimediale, quindi selezionare Crea funzione.
  2. Configurare il nome, il compartimento e l'applicazione come indicato di seguito.
    • Nome: il nome scelto per la nuova funzione. Il nome deve iniziare con una lettera o un carattere di sottolineatura, seguito da lettere, numeri, trattini o caratteri di sottolineatura. La lunghezza può essere di 1-255 caratteri. Evitare di fornire informazioni riservate.

      Per creare la funzione in un altro compartimento, selezionare Modifica compartimento.

    • Applicazione: selezionare l'applicazione in cui si desidera creare la funzione.

      Se nel compartimento corrente non esiste già un'applicazione adatta, selezionare Crea nuova applicazione e specificare i dettagli riportati di seguito.

      • Nome: un nome per la nuova applicazione. Evitare di fornire informazioni riservate.
      • VCN: la VCN (virtual cloud network) in cui eseguire le funzioni nell'applicazione. Facoltativamente, selezionare il compartimento VCN: per selezionare una VCN da un altro compartimento.
      • Sottoreti: la subnet (o sottoreti, fino a un massimo di tre) in cui eseguire le funzioni. Facoltativamente, selezionare Compartimento Subnet: per selezionare una subnet da un compartimento diverso.
      • Forma: l'architettura del processore delle istanze di computazione su cui distribuire ed eseguire le funzioni nell'applicazione. Tutte le funzioni nell'applicazione vengono distribuite ed eseguite su istanze di computazione con la stessa architettura. L'immagine della funzione deve contenere le dipendenze necessarie per l'architettura selezionata.
      • Tag: se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare tag in formato libero a tale risorsa. Per applicare una tag defined, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non sei sicuro di applicare i tag, salta questa opzione o chiedi a un amministratore. È possibile applicare le tag in un secondo momento.
      • Attributi di sicurezza: se si dispone delle autorizzazioni per creare una risorsa, è possibile che si disponga anche delle autorizzazioni per applicare gli attributi di sicurezza a tale risorsa. Per applicare un attributo di sicurezza, è necessario disporre delle autorizzazioni per utilizzare lo spazio di nomi degli attributi di sicurezza. Per ulteriori informazioni sugli attributi di sicurezza e sugli spazi di nomi degli attributi di sicurezza, vedere Instradamento di Zero Trust Packet. Se non si è certi di applicare gli attributi di sicurezza, saltare questa opzione o chiedere a un amministratore. È possibile applicare gli attributi di sicurezza in un secondo momento.
  3. Configurare il criterio IAM per le funzioni predefinite.

    Per impostazione predefinita, OCI Functions crea un gruppo dinamico e un criterio IAM con le istruzioni dei criteri necessarie per eseguire la funzione predefinita. Procedere come indicato di seguito.

    • Se si desidera che OCI Functions crei automaticamente il gruppo dinamico e il criterio, non apportare modifiche per accettare il comportamento predefinito.
    • Se non si desidera che le funzioni OCI creino automaticamente il gruppo dinamico e il criterio, selezionare Non creare un gruppo dinamico e un criterio IAM.
    Importante

    Se si seleziona l'opzione Non creare un gruppo dinamico e un criterio IAM, è necessario definire il gruppo dinamico e il criterio IAM personalmente. Per ulteriori informazioni, vedere Autorizzazioni.
  4. Configurare i valori di memoria e timeout della funzione come indicato di seguito.
    • Memoria (in MB): la quantità massima di memoria che la funzione può utilizzare durante l'esecuzione, espressa in megabyte. Memoria disponibile per l'immagine della funzione. (Impostazione predefinita: 128 MB)
    • Timeout (in secondi): il tempo massimo di esecuzione della funzione, in secondi. Se la funzione non viene completata nel tempo specificato, il sistema annulla la funzione. (Impostazione predefinita: 300)
  5. (Facoltativo) Configurare Concorrenza con provisioning eseguito per ridurre al minimo i ritardi iniziali durante il richiamo della funzione specificando un numero minimo di richiami di funzioni concorrenti per i quali si desidera che l'infrastruttura di esecuzione sia costantemente disponibile. (Impostazione predefinita: non selezionata)

    Se si seleziona questa opzione, specificare il numero di unità di accesso concorrente con provisioning eseguito assegnate a questa funzione. Valore predefinito: 20.

    Per ulteriori informazioni sull'accesso concorrente con provisioning eseguito, vedere Riduzione della latenza iniziale mediante accesso concorrente con provisioning eseguito.

  6. Impostare i parametri di configurazione della funzione come descritto in Parametri di configurazione.
  7. Facoltativamente, immettere qualsiasi tag nella sezione Tag. Se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare tag in formato libero a tale risorsa. Per applicare una tag defined, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non sei sicuro di applicare i tag, salta questa opzione o chiedi a un amministratore. È possibile applicare i tag in un secondo momento.
  8. Selezionare Crea.

Nella finestra di dialogo Distribuzione vengono visualizzati i task per la distribuzione della funzione (vedere Fine della distribuzione delle funzioni predefinite).

Opzioni di configurazione

Parametri di configurazione

Nome descrizione; Richiesto
MEDIA_WORKFLOW_ID ID del workflow multimediale creato per il job. L'impostazione predefinita è null.
DESTINATION_BUCKET Nome del bucket di storage degli oggetti in cui si desidera salvare l'output del job. Il valore predefinito è il bucket specificato qui. No
DESTINATION_COMPARTMENT_ID ID del compartimento in cui è presente il bucket di destinazione. L'impostazione predefinita è il compartimento in cui viene creato il workflow multimediale. No
PBF_LOG_LEVEL Livello di log, le opzioni sono DEBUG, INFO, WARN e ERROR. L'impostazione predefinita è INFO. No

Autorizzazioni

L'esecuzione di una funzione richiede determinati criteri IAM. Se durante la creazione della funzione è stata selezionata l'opzione Non creare un gruppo dinamico e un criterio IAM, è necessario definire manualmente il gruppo dinamico e il criterio IAM.

Per impostare i criteri appropriati, effettuare le operazioni riportate di seguito.

  • Creare un gruppo dinamico con la regola:
    ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'
  • Configurare un criterio IAM utilizzando il gruppo dinamico:
    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>
                                
Nota

Sostituire <function-ocid> con l'OCID della funzione creata nei passi precedenti.
Nota

Sostituire <dynamic-group-name> con il nome del gruppo dinamico creato utilizzando l'OCID della funzione.
Nota

Sostituire <compartment_ocid> con l'OCID del compartimento che contiene la funzione.

Richiamo di questa funzione

Creare due condizioni nella regola evento:

  1. Condizione come "Tipo di evento", Nome servizio come "Storage degli oggetti" e Tipo di evento come "Oggetto - Crea".
  2. Condizione come "Attributo", Nome attributo come "bucketName" e fornire il nome del bucket di origine in "Valori attributo".

Il richiamo della funzione predefinita segue i passi riportati di seguito.

  1. L'inserimento di un file video nell'area di memorizzazione degli oggetti attiva un evento.
  2. Una regola corrisponde all'evento e richiama la funzione predefinita.
  3. La funzione predefinita sottomette un job che converte il file video e lo inserisce nel bucket di destinazione.

Corpo risposta

  • Indicatori data/ora: utilizzo di UTC per evitare problemi di fuso orario.
  • Codice: se il task viene completato correttamente, la funzione restituisce un codice di 200.
  • Stato: la funzione restituisce "Operazione riuscita" come stato se il task viene completato correttamente.
  • dati: un corpo del messaggio JSON che include informazioni di risposta specifiche per il task.

Esempio

L'esempio riportato di seguito mostra i dati di restituzione JSON.

{
    "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...."
        }
    }
}

Risoluzione dei problemi

Codici di stato comuni delle funzioni OCI

Nella tabella riportata di seguito vengono riepilogati gli errori comuni delle funzioni OCI che possono verificarsi quando si utilizzano funzioni predefinite.

Codice di errore Messaggio di errore Azione
200 Riusciti Nessuna.
404 NotAuthorizedOrNotFound Verificare che i criteri richiesti siano configurati (vedere Esecuzione dei comandi CLI di Fn Project restituisce un errore 404).
444 Timeout

La connessione tra il client e le funzioni OCI è stata interrotta durante l'esecuzione della funzione (vedere La chiamata di una funzione fa sì che il client riporti un timeout e nei log della funzione venga visualizzato un errore 444). Un nuovo tentativo potrebbe risolvere il problema.

Si noti che la maggior parte dei client ha un timeout interno di 60 secondi. Anche se il timeout della funzione predefinita è impostato su 300 secondi, potrebbe essere necessario effettuare le operazioni riportate di seguito.

  • Quando si utilizza l'interfaccia CLI OCI: utilizzare --read-timeout 300
  • Quando si utilizza SDK OCI: impostare il timeout di lettura su 300 quando si crea il client
  • Quando si utilizza DBMS_CLOUD.SEND_REQUEST: utilizzare UTL_HTTP.set_transfer_timeout(300);

Per ulteriori informazioni, vedere Richiamo di funzioni.

502 504 (varie) La maggior parte dei problemi restituisce un codice di stato 502 (vedere La chiamata di una funzione restituisce un messaggio di errore Funzione e un errore 502). Un errore 502 con il messaggio "risposta alla funzione di ricezione errore" potrebbe essere risolto aumentando l'allocazione della memoria. Un 502 può verificarsi occasionalmente quando la funzione è in qualche stato transitorio. Un nuovo tentativo potrebbe risolvere il problema.

Per identificare ulteriormente la causa, abilitare le funzioni di log per la funzione predefinita (vedere Memorizzazione e visualizzazione dei log delle funzioni). Per informazioni dettagliate sulla risoluzione dei problemi di una funzione, vedere Risoluzione dei problemi delle funzioni OCI.

Codici di stato della funzione predefinita per il generatore di job del workflow multimediale

Nella tabella seguente vengono riepilogati gli errori che si possono verificare quando si utilizza questa funzione predefinita.

Codice di errore Messaggio di errore Azione
400 Il payload della funzione ha un tipo di evento errato Verificare se il tipo di evento è "Oggetto - Crea".

Per identificare ulteriormente la causa, abilitare le funzioni di log per la funzione predefinita (vedere Memorizzazione e visualizzazione dei log delle funzioni).

Suggerimenti per l'analisi dei log

Tutte le funzioni predefinite forniscono un'opzione per specificare il livello di log come parametro di configurazione. Per ottenere ulteriori informazioni, è possibile impostare il livello di log su DEBUG.

Poiché un'applicazione dispone di più funzioni, le voci di log delle funzioni predefinite vengono identificate dal prefisso "PBF | <PBF NAME>".

Ad esempio, una voce di log per la funzione predefinita Generatore job workflow multimediale ha un aspetto simile al seguente:

"PBF | Media Workflow Job Spawner | INFO | 2023-02-07T18:06:50.809Z | Fetching details from Events JSON"