Função de Spawner do Job do Workflow de Mídia

Descubra como usar a função pré-criada Media Workflow Job Spawner no OCI Functions para acionar um job de workflow de mídia quando o upload do conteúdo de vídeo for feito em um bucket do Object Storage.

Cenário de Uso Comum

As formas comuns de usar a função Media Workflow Job Spawner incluem:

  • Codifique um arquivo de vídeo em diferentes resoluções após fazer upload de um arquivo de vídeo em um bucket.
  • Codifique um arquivo de áudio em taxas de bits diferentes após fazer upload de um arquivo de áudio em um bucket.

Os serviços relacionados à função Media Workflow Job Spawner incluem:

Escopo

As considerações de escopo para esta função incluem:

  • A função pré-criada honra apenas o tipo de evento "Objeto - Criar". A função pré-criada só acionará o job de workflow de mídia se um novo objeto for criado no bucket de origem.
  • A função pré-criada não aguarda a conclusão do job de workflow de mídia. A função simplesmente aciona o trabalho.

Pré-requisitos e Recomendações

Veja a seguir as melhores práticas ao usar esta função predefinida:

  • Defina o timeout da função pré-criada como 300 segundos.
  • Certifique-se de que a VCN vinculada ao aplicativo facilite o acesso a outros serviços do OCI usando um gateway de serviço, um gateway de internet ou um gateway NAT.

Configurando a Função de Spawner do Job do Media Workflow

Para configurar uma função Gerador de Jobs do Workflow de Mídia, execute as seguintes etapas:

  1. Na página Funções Pré-Criadas, selecione Criador de Job do Workflow de Mídia e Criar função.
  2. Configure Nome, Compartimento e Aplicativo da seguinte forma:
    • Nome: Um nome de sua escolha para a nova função. O nome deve começar com letra ou sublinhado, seguido de letras, números, traços ou sublinhados. O tamanho pode ser de 1 a 255 caracteres. Evite digitar informações confidenciais.

      Para criar a função em outro compartimento, selecione Alterar Compartimento.

    • Aplicativo: selecione o aplicativo no qual você deseja criar a função.

      Se ainda não existir um aplicativo adequado no compartimento atual, selecione Criar novo aplicativo e especifique os seguintes detalhes:

      • Nome: Um nome para o novo aplicativo. Evite digitar informações confidenciais.
      • VCN: A VCN (rede virtual na nuvem) na qual executar funções no aplicativo. Opcionalmente, selecione Compartimento da VCN: para selecionar uma rede VCN em outro compartimento.
      • Sub-redes: A sub-rede (ou sub-redes, até três no máximo) na qual executar funções. Opcionalmente, selecione Compartimento de sub-redes: para selecionar uma sub-rede em outro compartimento.
      • Forma: A arquitetura do processador das instâncias de computação nas quais implantar e executar funções no aplicativo. Todas as funções no aplicativo são implantadas e executadas em instâncias de computação com a mesma arquitetura. A imagem da função deve conter as dependências necessárias para a arquitetura selecionada.
      • Tags: Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
      • Atributos de segurança: Se você tiver permissões para criar um recurso, poderá ter permissões para aplicar atributos de segurança a esse recurso. Para aplicar um atributo de segurança, você deve ter permissões para usar o namespace do atributo de segurança. Para obter mais informações sobre atributos de segurança e namespaces de atributo de segurança, consulte Roteamento de Pacote de Confiança Zero. Se você não tiver certeza se deseja aplicar atributos de segurança, ignore essa opção ou pergunte a um administrador. Você pode aplicar atributos de segurança posteriormente.
  3. Configure a política do IAM para funções pré-criadas.

    Por padrão, o OCI Functions cria um grupo dinâmico e uma política do serviço IAM com as instruções de política necessárias para executar a função pré-criada. Proceda como segue:

    • Se você quiser que o OCI Functions crie automaticamente o grupo dinâmico e a política, não faça alterações para aceitar o comportamento padrão.
    • Se você não quiser que o OCI Functions crie automaticamente o grupo dinâmico e a política, selecione Não criar um grupo dinâmico e uma política de IAM.
    Importante

    Se você selecionar a opção Não criar um grupo dinâmico e uma política de IAM, deverá definir você mesmo o grupo dinâmico e a política de IAM. Para obter mais informações, consulte Permissões.
  4. Configure a memória da função e os valores de timeout da seguinte forma:
    • Memória (em MBs): A quantidade máxima de memória que a função pode usar durante a execução, em megabytes. Esta é a memória disponível para a imagem da função. (Padrão: 128 MB)
    • Timeout (em segundos): A quantidade máxima de tempo que a função pode executar, em segundos. Se a função não for concluída no tempo especificado, o sistema cancelará a função. (Padrão: 300)
  5. (Opcional) Configure a Simultaneidade provisionada para minimizar atrasos iniciais ao chamar a função especificando um número mínimo de chamadas de função simultâneas para as quais você deseja que a infraestrutura de execução esteja constantemente disponível. (Padrão: não selecionado)

    Se selecionado, especifique o número de unidades de simultaneidade provisionadas atribuídas a esta função. Padrão: 20.

    Para obter mais informações sobre simultaneidade provisionada, consulte Redução da latência inicial usando simultaneidade provisionada.

  6. Defina os parâmetros de configuração da função conforme descrito em Parâmetros de Configuração.
  7. Opcionalmente, informe qualquer tag na seção Tags. Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
  8. Selecione Criar.

A caixa de diálogo de implantação exibe as tarefas para implantar a função (consulte Finalizando a Implantação de Função Pré-Criada).

Opções de Configuração

Parâmetros de configuração

Nome Descrição Obrigatórias
MEDIA_WORKFLOW_ID ID do workflow de mídia criado para o job. O padrão é null. Sim
DESTINATION_BUCKET Nome do bucket de armazenamento de objetos no qual você deseja salvar a saída do job. O padrão é o bucket especificado aqui. Número
DESTINATION_COMPARTMENT_ID ID do compartimento no qual o bucket de destino está presente. O padrão é o compartimento no qual o workflow de mídia é criado. Número
PBF_LOG_LEVEL No nível de log, as opções são DEBUG, INFO, WARN e ERROR. O padrão é INFO. Número

Permissões

A execução de uma função requer determinadas políticas do serviço IAM. Se você tiver selecionado a opção Não criar um grupo dinâmico e uma política do serviço IAM ao criar a função, defina você mesmo o grupo dinâmico e a política do serviço IAM.

Para definir as políticas adequadas, execute as seguintes etapas:

  • Crie um grupo dinâmico com a regra:
    ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'
  • Configure uma política do IAM usando o 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>
                                
Observação

Substitua <function-ocid> pelo OCID da função que você criou nas etapas anteriores.
Observação

Substitua <dynamic-group-name> pelo nome do grupo dinâmico que você criou usando o OCID da função.
Observação

Substitua <compartment_ocid> pelo OCID do compartimento que contém a função.

Chamando Esta Função

Crie duas condições na regra de evento:

  1. Condição como "Tipo de Evento", Nome do serviço como "Object Storage" e Tipo de Evento como "Objeto - Criar".
  2. Condição como "Atributo", Nome do Atributo como "bucketName" e forneça o nome do bucket de origem em "Valores do Atributo".

A chamada da função pré-criada segue estas etapas:

  1. Colocar um arquivo de vídeo no armazenamento de objetos aciona um evento.
  2. Uma regra corresponde ao evento e chama a função pré-criada.
  3. A função pré-criada envia um job que converte o arquivo de vídeo e coloca o arquivo no bucket de destino.

Corpo da Resposta

  • Data/Hora: Usando o UTC para evitar problemas de fuso horário.
  • Código: A função retornará um código 200 se a tarefa for concluída com sucesso.
  • Status: A função retornará "Sucesso" como o status se a tarefa for concluída com sucesso.
  • dados: Um corpo de mensagem JSON que inclui informações de resposta específicas para a tarefa.

Exemplo

O exemplo a seguir mostra os dados de retorno 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...."
        }
    }
}

Diagnóstico e Solução de Problemas

Códigos de status comuns do OCI Functions

A tabela a seguir resume os erros comuns do OCI Functions que você pode encontrar ao trabalhar com funções predefinidas:

Código do Erro Mensagem de Erro Ação
200 Bem-sucedido Nenhuma
404 NotAuthorizedOrNotFound Verifique se as políticas necessárias estão configuradas (consulte A execução dos comandos da CLI do Fn Project retorna um erro 404).
444 Timeout

A conexão entre o cliente e o OCI Functions foi interrompida durante a execução da função (consulte Chamar uma função faz com que o cliente reporte um timeout e um erro 444 é mostrado nos logs da função). Uma nova tentativa pode resolver o problema.

Observe que a maioria dos clientes tem um tempo limite interno de 60 segundos. Mesmo quando o timeout da função pré-criada é definido como 300 segundos, o seguinte pode ser necessário:

  • Ao usar a CLI do OCI: Use --read-timeout 300
  • Ao usar o OCI SDK: Defina o timeout de leitura como 300 ao criar o cliente
  • Ao usar DBMS_CLOUD.SEND_REQUEST: Use UTL_HTTP.set_transfer_timeout(300);

Para obter mais informações, consulte Chamando Funções.

502 504 (vários) A maioria dos problemas retorna um código de status 502 (consulte Chamar uma função retorna uma mensagem de falha de Função e um erro 502). Um erro 502 com a mensagem "erro ao receber resposta da função" pode ser resolvido aumentando a alocação de memória. Um 502 pode ocorrer ocasionalmente quando a função está em algum estado transitório. Uma nova tentativa pode resolver o problema.

Para identificar melhor a causa, ative os recursos de log para a função pré-criada (consulte Armazenando e Exibindo Logs de Funções). Para obter informações detalhadas sobre a solução de problemas de uma função, consulte Diagnosticando e Solucionando Problemas do Serviço OCI Functions.

Códigos de status da Função Pré-Criada do Gerador de Cargos do Workflow de Mídia

A tabela a seguir resume os erros que você pode encontrar ao trabalhar com essa função predefinida:

Código do Erro Mensagem de Erro Ação
400 A carga útil da função tem Tipo de Evento incorreto Verifique se o tipo de evento é "Objeto - Criar".

Para identificar melhor a causa, ative os recursos de log para a função pré-criada (consulte Armazenando e Exibindo Logs de Funções).

Dicas de Análise de Log

Todas as funções pré-criadas fornecem uma opção para especificar o nível de log como um parâmetro de configuração. Você pode definir o nível de log como DEBUG para obter mais informações.

Como um aplicativo tem várias funções, as entradas de log de função pré-criadas são identificadas pelo prefixo "PBF | <PBF NAME> ".

Por exemplo, uma entrada de log para a função pré-criada do Gerador de Job do Workflow de Mídia é semelhante à seguinte:

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