Función de generador de trabajos de flujo de trabajo de medios
Descubra cómo utilizar la función predefinida Generador de trabajos de flujo de trabajo de medios en OCI Functions para disparar un trabajo de flujo de trabajo de medios cuando se carga contenido de vídeo en un cubo de Object Storage.
Casos de Uso Común
Las formas comunes de utilizar la función Media Workflow Job Spawner incluyen:
- Codifique un archivo de vídeo con diferentes resoluciones después de cargar un archivo de vídeo en un cubo.
- Codifique un archivo de audio a diferentes velocidades de bits después de cargar un archivo de audio en un cubo.
Los servicios relacionados con la función Media Workflow Job Spawner incluyen:
Ámbito
Las consideraciones de ámbito para esta función incluyen:
- La función incorporada solo respeta el tipo de evento "Object - Create". La función incorporada procede a disparar el trabajo de flujo de trabajo de medios solo si se crea un nuevo objeto en el cubo de origen.
- La función incorporada no espera a que se complete el trabajo de flujo de trabajo de medios. La función simplemente dispara el trabajo.
Requisitos y recomendaciones
A continuación, se muestran las mejores prácticas al utilizar esta función incorporada:
- Establezca el tiempo de espera de la función predefinida en 300 segundos.
- La VCN enlazada a la aplicación facilita el acceso a otros servicios de OCI mediante un gateway de servicio, un gateway de Internet o un gateway de NAT.
Configuración de la función de generador de trabajos de flujo de trabajo de medios
Para configurar una función Media Workflow Job Spawner, realice los siguientes pasos:
El cuadro de diálogo de despliegue muestra las tareas para desplegar la función (consulte Finalización del despliegue de funciones incorporadas).
Opciones de Configuración
Parámetros de Configuración
Nombre | Descripción | necesario |
---|---|---|
MEDIA_WORKFLOW_ID |
ID del flujo de trabajo de medios creado para el trabajo. El valor por defecto es null . |
Si |
DESTINATION_BUCKET |
Nombre del cubo de almacenamiento de objetos en el que desea guardar la salida del trabajo. El valor por defecto es el cubo especificado aquí. | No |
DESTINATION_COMPARTMENT_ID |
ID del compartimento en el que está presente el cubo de destino. El valor por defecto es el compartimento en el que se crea el flujo de trabajo de medios. | No |
PBF_LOG_LEVEL |
Nivel de registro, las opciones son DEBUG , INFO , WARN y ERROR . El valor por defecto es INFO . |
No |
Permisos
La ejecución de una función requiere determinadas políticas de IAM. Si ha seleccionado la opción No crear un grupo dinámico y una política de IAM al crear la función, debe definir el grupo dinámico y la política de IAM usted mismo.
Para definir las políticas adecuadas, realice los siguientes pasos:
- Crear un grupo dinámico con la regla:
ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'
- Configure una política de IAM mediante el grupo dinámico:
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>
Sustituya
<function-ocid>
por el OCID de la función que ha creado en los pasos anteriores. Sustituya
<dynamic-group-name>
por el nombre del grupo dinámico que ha creado mediante el OCID de la función.Sustituya
<compartment_ocid>
por el OCID del compartimento que contiene la función.Llamando a esta función
Cree dos condiciones en la regla de evento:
- La condición es "Event Type", el nombre del servicio es "Object Storage" y el tipo de evento es "Object - Create".
- Condición como "Atributo", Nombre de atributo como "bucketName" y proporcione el nombre del cubo de origen en "Valores de atributo".
La llamada de la función incorporada sigue estos pasos:
- La colocación de un archivo de vídeo en el almacén de objetos dispara un evento.
- Una regla coincide con el evento y llama a la función predefinida.
- La función incorporada ejecuta un trabajo que convierte el archivo de vídeo y lo coloca en el cubo de destino.
Cuerpo de Respuesta
- Registros de hora: utilice UTC para evitar problemas de zona horaria.
- Código: la función devuelve un código 200 si la tarea finaliza correctamente.
- Estado: la función devuelve "Correcto" como estado si la tarea se completa correctamente.
- datos: cuerpo de mensaje JSON que incluye información de respuesta específica para la tarea.
Ejemplo
En el siguiente ejemplo se muestran los datos de retorno de 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...."
}
}
}
Solución de Problemas
Códigos de estado comunes de OCI Functions
En la siguiente tabla se resumen los errores comunes de OCI Functions que puede encontrar al trabajar con funciones predefinidas:
Código de Error | Mensaje de Error | Acción |
---|---|---|
200 | Correcto | Ninguna. |
404 | NotAuthorizedOrNotFound | Verifique que las políticas necesarias estén configuradas (consulte Ejecución de comandos de la CLI de Fn Project devuelve un error 404). |
444 | Timeout |
La conexión entre el cliente y OCI Functions se ha interrumpido durante la ejecución de la función (consulte La llamada a una función hace que el cliente informe de un timeout y se muestra un error 444 en los logs de la función). Un reintento podría resolver el problema. Tenga en cuenta que la mayoría de los clientes tienen un timeout interno de 60 segundos. Incluso cuando el tiempo de espera de la función predefinida se establece en 300 segundos, puede ser necesario lo siguiente:
Para obtener más información, consulte Llamada a funciones. |
502 504 | (varios) | La mayoría de los problemas devuelven un código de estado 502 (consulte Llamada a una función devuelve un mensaje de fallo de función y un error 502). Se puede resolver un error 502 con el mensaje "error receive function response" mediante el aumento de la asignación de memoria. Un 502 puede ocurrir ocasionalmente cuando la función está en algún estado transitorio. Un reintento podría resolver el problema. |
Para identificar aún más la causa, active las funciones de registro para la función predefinida (consulte Almacenamiento y visualización de logs de funciones). Para obtener información detallada sobre la solución de problemas de una función, consulte Solución de problemas de OCI Functions.
Códigos de estado de función predefinida de generador de trabajos de flujo de trabajo de medios
En la siguiente tabla se resumen los errores que puede encontrar al trabajar con esta función creada previamente:
Código de Error | Mensaje de Error | Acción |
---|---|---|
400 | La carga útil de función tiene un tipo de evento incorrecto | Verifique si el tipo de evento es "Object - Create". |
Para identificar aún más la causa, active las funciones de registro para la función predefinida (consulte Almacenamiento y visualización de logs de funciones).
Consejos de análisis de logs
Todas las funciones predefinidas proporcionan una opción para especificar el nivel de registro como parámetro de configuración. Puede definir el nivel de registro en DEBUG
para obtener más información.
Dado que una aplicación tiene varias funciones, las entradas del log de funciones predefinidas se identifican con el prefijo "PBF | <PBF NAME> ".
Por ejemplo, una entrada de log para la función creada previamente del generador de trabajos de flujo de trabajo de medios tiene un aspecto similar al siguiente:
"PBF | Media Workflow Job Spawner | INFO | 2023-02-07T18:06:50.809Z | Fetching details from Events JSON"