Tratamento de erros de funções AzureAzure Functions error handling

O manuseamento de erros nas Funções Azure é importante para evitar dados perdidos, eventos perdidos e monitorizar a saúde da sua aplicação.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 de manipulação de erros, juntamente com ligações a erros específicos de ligação.This article describes general strategies for error handling along with links to binding-specific errors.

Processar errosHandling errors

Os erros levantados numa Função Azure podem vir de qualquer uma das seguintes origens:Errors raised in an Azure Functions can come from any of the following origins:

  • Utilização de funções Azure incorporadas e encadernaçõesUse of built-in Azure Functions triggers and bindings
  • Chamadas para APIs dos serviços Azure subjacentesCalls to APIs of underlying Azure services
  • Chamadas para pontos finais RESTCalls to REST endpoints
  • Chamadas para bibliotecas de clientes, pacotes ou APIs de terceirosCalls to client libraries, packages, or third-party APIs

Seguir práticas sólidas de manuseamento de erros é importante 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:

Utilizar o tratamento de erros estruturadosUse structured error handling

Capturar e publicar erros é fundamental para monitorizar a saúde da sua aplicação.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 de tentativa/captura.The top-most level of any function code should include a try/catch block. No bloco de capturas, pode capturar e publicar erros.In the catch block, you can capture and publish errors.

Apoio de retíriaRetry support

Os seguintes gatilhos têm suporte de retíria incorporado:The following triggers have built-in retry support:

Por padrão, estes gatilhos relemquem pedidos até cinco vezes.By default, these triggers retry requests up to five times. Após a quinta repetição, tanto o armazenamento da Fila Azure como o Azure Service Bus disparam escrever uma mensagem para uma fila de venenos.After the fifth retry, both the Azure Queue storage and Azure Service Bus triggers write a message to a poison queue.

É necessário implementar manualmente políticas de repetição para quaisquer outros tipos de gatilhos ou encadernações.You need to manually implement retry policies for any other triggers or bindings types. As implementações manuais podem incluir a redação de informações de erro para uma fila de mensagens venenosas.Manual implementations may include writing error information to a poison message queue. Ao escrever para uma fila de venenos, você tem a oportunidade de voltar a tentar operações mais tarde.By writing to a poison queue, you have the opportunity to retry operations at a later time. Esta abordagem é a mesma usada pelo gatilho de armazenamento Blob.This approach is the same one used by the Blob storage trigger.

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

Ao integrar-se com os serviços Azure, os erros podem ter origem nas APIs dos serviços subjacentes.When integrating with Azure services, errors may originate from the APIs of the underlying services. As informações relativas a erros específicos vinculativos estão disponíveis na secção "Exceções" e "códigos de devolução" dos seguintes artigos:Information relating to binding-specific errors is available in the Exceptions and return codes section of the following articles: