Tratamento de erros do Azure FunctionsAzure Functions error handling

O tratamento de erros no Azure Functions é importante para evitar perda de dados, eventos perdidos e para monitorar a integridade do aplicativo.Handling errors in Azure Functions is important to avoid lost data, missed events, and to monitor the health of your application.

Este artigo descreve estratégias gerais para tratamento de erros junto com links para erros específicos de associação.This article describes general strategies for error handling along with links to binding-specific errors.

Tratando errosHandling errors

Os erros gerados em um Azure Functions podem vir de qualquer uma das seguintes origens:Errors raised in an Azure Functions can come from any of the following origins:

  • Uso de gatilhos e associações de Azure Functions internosUse of built-in Azure Functions triggers and bindings
  • Chamadas para APIs de serviços subjacentes do AzureCalls to APIs of underlying Azure services
  • Chamadas para pontos de extremidade RESTCalls to REST endpoints
  • Chamadas para bibliotecas de cliente, pacotes ou APIs de terceirosCalls to client libraries, packages, or third-party APIs

Seguir as práticas sólidas de tratamento de erros é importante para evitar a perda de dados ou mensagens perdidas.Following solid error handling practices is important to avoid loss of data or missed messages. As práticas recomendadas de tratamento de erros incluem as seguintes ações:Recommended error handling practices include the following actions:

Usar tratamento de erro estruturadoUse structured error handling

Capturar e publicar erros é essencial para monitorar a integridade do seu aplicativo.Capturing and publishing errors is critical to monitoring the health of your application. O nível mais alto de qualquer código de função deve incluir um bloco try/catch.The top-most level of any function code should include a try/catch block. No bloco catch, você pode capturar e publicar erros.In the catch block, you can capture and publish errors.

Tentar suporte novamenteRetry support

Os seguintes gatilhos têm suporte interno de repetição:The following triggers have built-in retry support:

Por padrão, esses gatilhos retentam solicitações até cinco vezes.By default, these triggers retry requests up to five times. Após a quinta repetição, o armazenamento de fila do Azure e o barramento de serviço do Azure disparam a gravação de uma mensagem em uma fila de suspeitas.After the fifth retry, both the Azure Queue storage and Azure Service Bus triggers write a message to a poison queue.

Você precisa implementar manualmente as políticas de repetição para quaisquer outros tipos de associações ou disparadores.You need to manually implement retry policies for any other triggers or bindings types. Implementações manuais podem incluir a gravação de informações de erro em uma fila de mensagens suspeitas.Manual implementations may include writing error information to a poison message queue. Ao gravar em uma fila suspeita, você tem a oportunidade de tentar novamente as operações mais tarde.By writing to a poison queue, you have the opportunity to retry operations at a later time. Essa abordagem é a mesma usada pelo gatilho de armazenamento de Blob.This approach is the same one used by the Blob storage trigger.

Códigos de erro de associaçãoBinding error codes

Ao integrar com os serviços do Azure, os erros podem se originar das APIs dos serviços subjacentes.When integrating with Azure services, errors may originate from the APIs of the underlying services. Informações relacionadas a erros específicos de associação estão disponíveis na seção exceções e códigos de retorno dos seguintes artigos:Information relating to binding-specific errors is available in the Exceptions and return codes section of the following articles: