Cenário: Enviando Mensagens da Fila para uma Função
Integre a Fila com o Functions usando o Connector Hub.
Esse cenário envolve a criação de uma função e, em seguida, fazer referência a essa função como destino em um conector (Connector Hub) para receber e processar mensagens de filas.
O payload recebido pela função contém apenas mensagens da fila.
Para obter um tutorial relacionado, consulte Usar o OCI Functions e o OCI Queue para Autorizar Recursos do Usuário sem Expor o Privilégio de Administrador a Aprovadores.
Para obter ajuda com a solução de problemas, consulte Solucionando Problemas de Conectores.
Política Obrigatória do Serviço IAM
Se você for membro do grupo Administradores, já terá o acesso necessário para executar esse cenário. Caso contrário, você precisará acessar o serviço Functions.
O workflow para criar o conector inclui uma política padrão quando necessário para fornecer permissão para gravar no serviço de destino. Se você não estiver familiarizado com políticas, consulte Visão Geral de Políticas do Serviço IAM.
Tratamento de erros ao processar filas
No contexto de mensagens de fila enviadas para funções, não há suporte para falhas parciais durante o processamento de mensagens em um batch.
Quando uma função que está processando um batch de mensagens de uma fila encontra um erro, todas as mensagens desse batch ficam visíveis na fila novamente, incluindo mensagens que a função processou com sucesso. Portanto, uma mensagem pode ser processada pela função várias vezes. Como acontece com qualquer destino, o conector continua repetindo indefinidamente até que o destino da função seja bem-sucedido. Para obter mais informações, consulte Detalhes da Entrega.
Se ocorrer uma falha durante o processamento de um lote de mensagens, a contagem de entregas dessas mensagens ainda será aumentada. Se a contagem de entregas de uma mensagem atingir o máximo definido no nível da fila, a mensagem será enviada para a fila de mensagens não processadas. Para obter mais informações, consulte Contagem de entregas.
Para evitar o reprocessamento de mensagens, torne sua função idempotente.
Configurando a Fila e a Função
Para poder criar o conector (Connector Hub) , configure uma fila e uma função para receber dados da fila.
Para obter instruções sobre a fila, consulte Criando uma fila.
Para obter instruções sobre a função, consulte o seguinte:
O processo de criação é iniciado e seu progresso é exibido. Na conclusão, a página de detalhes do conector é aberta. Execute a operação CreateServiceConnector para criar o conector.
Exemplo de solicitação:
POST /20200909/serviceConnectors Host: service-connector-hub.us-phoenix-1.oraclecloud.com <authorization and other headers> { "displayName": "My Queue to Function Connector", "compartmentId": "<compartment_OCID>", "description": "My connector description", "source": { "kind": "plugin", "pluginName": "QueueSource", "configMap": { "queueId": "<queue_OCID>" } }, "target": { "kind": "functions", "functionId": "<function_OCID>", "batchSizeInKbs": "5000", "batchSizeInNum": "10", "batchTimeInSec": "60" } }
Verificar e Solucionar Problemas de Chamadas
Para verificar e solucionar problemas de chamadas no serviço Functions, consulte Armazenando e Exibindo Logs de Funções.
Confirmar se o Novo Conector Move Dados
Depois de criar o conector, confirme se ele está movendo dados.
- Ativar logs do conector para obter detalhes sobre o fluxo de dados.
- Verifique os resultados esperados no serviço de destino.
A confirmação de que os dados são movidos ajuda a evitar a desativação automática, o que acontece quando um conector falha por muito tempo.