Azure Functions 오류 처리Azure Functions error handling

손실 된 데이터, 누락 된 이벤트 및 응용 프로그램의 상태를 모니터링 하는 것을 방지 하기 위해 Azure Functions 오류를 처리 하는 것이 중요 합니다.Handling errors in Azure Functions is important to avoid lost data, missed events, and to monitor the health of your application.

이 문서에서는 바인딩 관련 오류에 대 한 링크와 함께 오류 처리에 대 한 일반적인 전략을 설명 합니다.This article describes general strategies for error handling along with links to binding-specific errors.

오류 처리Handling errors

Azure Functions 발생 하는 오류는 다음 원본 중 하나에서 가져올 수 있습니다.Errors raised in an Azure Functions can come from any of the following origins:

  • 기본 제공 Azure Functions 트리거 및 바인딩 사용Use of built-in Azure Functions triggers and bindings
  • 기본 Azure 서비스의 Api 호출Calls to APIs of underlying Azure services
  • REST 끝점에 대 한 호출Calls to REST endpoints
  • 클라이언트 라이브러리, 패키지 또는 타사 Api에 대 한 호출Calls to client libraries, packages, or third-party APIs

데이터 또는 누락 된 메시지의 손실을 방지 하기 위해 다음과 같은 견고한 오류 처리 방법을 사용 하는 것이 중요 합니다.Following solid error handling practices is important to avoid loss of data or missed messages. 권장 되는 오류 처리 방법에는 다음 작업이 포함 됩니다.Recommended error handling practices include the following actions:

구조적 오류 처리 사용Use structured error handling

캡처 및 게시 오류는 응용 프로그램의 상태를 모니터링 하는 데 매우 중요 합니다.Capturing and publishing errors is critical to monitoring the health of your application. 함수 코드의 최상위 수준에는 try/catch 블록이 포함 되어야 합니다.The top-most level of any function code should include a try/catch block. Catch 블록에서 오류를 캡처 및 게시할 수 있습니다.In the catch block, you can capture and publish errors.

다시 시도 지원Retry support

다음 트리거에는 기본 제공 재시도 지원이 있습니다.The following triggers have built-in retry support:

기본적으로이 작업은 다시 시도 요청을 최대 5 회까지 트리거합니다.By default, these triggers retry requests up to five times. 5 번째 재시도 후에는 Azure Queue storage와 Azure Service Bus 트리거에서 모두 포이즌 큐에 메시지를 씁니다.After the fifth retry, both the Azure Queue storage and Azure Service Bus triggers write a message to a poison queue.

다른 트리거 또는 바인딩 유형에 대 한 재시도 정책을 수동으로 구현 해야 합니다.You need to manually implement retry policies for any other triggers or bindings types. 수동 구현에는 포이즌 메시지 큐에 오류 정보를 기록 하는 작업이 포함 될 수 있습니다.Manual implementations may include writing error information to a poison message queue. 포이즌 큐에 기록 하면 나중에 작업을 다시 시도할 수 있습니다.By writing to a poison queue, you have the opportunity to retry operations at a later time. 이 방법은 Blob storage 트리거에서 사용 하는 것과 동일 합니다.This approach is the same one used by the Blob storage trigger.

바인딩 오류 코드Binding error codes

Azure 서비스와 통합 하는 경우 기본 서비스의 Api에서 오류가 발생할 수 있습니다.When integrating with Azure services, errors may originate from the APIs of the underlying services. 바인딩 관련 오류와 관련 된 정보는 다음 문서의 예외 및 반환 코드 섹션에서 사용할 수 있습니다.Information relating to binding-specific errors is available in the Exceptions and return codes section of the following articles: