다음을 통해 공유


서비스 후크 문제 해결 방법

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

이 문서에서는 Azure DevOps 서비스 후크에 대한 일반적인 문제 해결 지침을 제공합니다. FAQ(질문과 대답)에 대한 답변도 제공합니다.

활동 및 디버그 문제 보기

웹 액세스 관리자의 서비스 후크 페이지에는 각 구독에 대한 지난 7일의 활동이 요약되어 있습니다. 페이지에는 각 구독의 사용 여부, 사용 안 함 또는 제한 여부도 표시됩니다.

각 구독에 대해 각 이벤트에 대한 전체 요청 및 응답 데이터를 포함하는 자세한 기록에 액세스할 수 있습니다. 이 정보는 문제가 있는 서비스 또는 구독을 디버그하는 데 도움이 될 수 있습니다.

  1. 구독의 활동 및 상태를 보려면 서비스 후크 페이지로 이동합니다.

    구독의 상태, 상태 및 기타 데이터를 보여 주는 서비스 후크 페이지의 스크린샷 프로젝트 설정 및 서비스 후크가 강조 표시됩니다.

  2. 전체 요청, 응답 및 이벤트 페이로드 데이터를 포함하여 구독에 대한 자세한 활동을 보려면 테이블에서 구독을 선택한 다음 기록선택합니다.

    상태, 메시지 및 오류 메시지와 같은 실패한 이벤트에 대한 자세한 정보가 포함된 구독 기록을 보여 주는 스크린샷

구독 실패 및 일시적인 제한

알림 요청에 대한 HTTP 응답이 오류를 나타내는 경우 오류의 심각도에 따라 Azure DevOps가 응답하는 방법이 결정됩니다. 특정 유형의 오류는 구독을 사용하지 않도록 설정하거나 보호 관찰에 넣을 수 있습니다.

오류 유형

서비스 후크 알림의 오류는 다음 범주로 그룹화됩니다.

  • 터미널 오류
  • 일시적 실패
  • 지속적인 오류

HTTP 응답의 오류 코드는 Azure DevOps에서 오류를 분류하는 방법을 결정합니다.

터미널 오류

터미널 오류로 분류되는 유일한 HTTP 상태 코드는 410(사라짐)입니다.

구독에서 터미널 오류가 발생하면 구독은 이전 상태에 관계없이 자동으로 비활성화됩니다.

일시적 실패

다음 상태 코드가 있는 HTTP 응답은 일시적인 오류로 분류됩니다.

  • 408(요청 시간 제한)
  • 502(잘못된 게이트웨이)
  • 503(서비스를 사용할 수 없음)
  • 504(게이트웨이 시간 제한)

구독에서 일시적인 오류가 발생하면 Azure DevOps는 알림을 최대 8번 다시 보내려고 시도하며 각 시도 사이에 지연이 증가합니다.

다음 표에서는 일시적인 오류가 발생한 후 시도되는 재시도에 대한 정보를 나열합니다. 대략적인 백오프 시간 또는 알림을 다시 보내기 전에 대기하는 시간이 포함됩니다. 최대 백오프 시간은 60초입니다. 또한 각 재시도에 대한 총 지연 시간도 표에 표시됩니다.

재시도 횟수 백오프 시간(초) 총 지연 시간(초)
1 1 1
2 2 3
3 4 7
4 8 (여덟) 15
5 16 31
6 32 63
7 60 (육십) 123
8 (여덟) 60 (육십) 183

알림에 대한 모든 재시도가 모두 소진되고 각 시도에서 일시적인 오류가 발생하면 알림이 더 이상 전송되지 않습니다. 대신, 그것은 지속적인 실패로 분류됩니다.

지속적인 오류

다른 모든 HTTP 오류 코드(예: 404(찾을 수 없음) 및 500(내부 서버 오류)은 지속적인 오류를 발생합니다.

구독에서 지속적인 오류가 발생하면 구독이 유예 기간으로 설정됩니다.

수습

구독이 보류 중이면 새 이벤트가 손실됩니다. 시스템은 실패한 알림을 다시 전송하려고 제한된 횟수를 만듭니다.

다음 표에서는 보호 관찰 중에 시도되는 재시도에 대한 대략적인 백오프 시간 및 총 보호 관찰 시간을 나열합니다. 최대 7번의 재시도가 시도되고 보호 관찰 재시도의 최대 백오프 시간은 15시간입니다.

재시도 횟수 백오프 시간 총 보호 관찰 시간(시간)
1 20분 0.33
2 40분 1
3 1시간 20분 2.33
4 2시간 40분 5
5 5시간 20분 10.33
6 10시간 40분 21
7 15시간 36

구독이 보호 관찰 중 성공적인 응답을 받으면 완전히 활성화된 상태로 복원되고 이벤트가 다시 게시됩니다. 7번의 재시도 모두 실패하면 구독 상태가 DisabledBySystem으로 설정됩니다.

AI를 사용하여 서비스 후크 문제 해결

Copilot Chat에서 사용하는 다음 예제 프롬프트는 Copilot이 오류 코드 및 메시지를 해결하는 데 도움을 줍니다. 이 프롬프트를 복사하여 코필로트 채팅에 붙여넣고 자리 표시자를 특정 오류 메시지로 바꿉 있습니다.

I'm getting this Azure DevOps service hook error: [PASTE YOUR ERROR MESSAGE HERE]

Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the issue
3. Verify the solution works

Context: This is for a service hook in Azure DevOps.

자주 묻는 질문 (FAQ)

Q: 서비스 후크의 페이로드 제한은 무엇인가요?

A: 페이로드 제한은 2MB입니다. 페이로드가 크면 성능과 안정성이 저하됩니다. 서비스 후크는 페이로드를 2MB로 제한하는 것이 가장 좋습니다.

Q: 사용(제한된) 상태는 무엇을 의미하나요?

A: 오류가 너무 많으면 구독이 제한됩니다. 사용(제한된) 상태에 있는 것은 보호 관찰 중과 동일합니다.

Q: 실패로 인해 비활성화된 상태는 무엇을 의미하나요?

A: 구독은 다음 경우에 자동으로 비활성화됩니다.

  • 터미널 오류가 발생했습니다.
  • 일련의 연속 실패는 장기간에 걸쳐 발생합니다.

일시적인 오류를 초래하는 알림은 지속적인 실패로 선언되기 전에 여러 번 다시 시도됩니다. 지속적인 오류 알림은 시험 기간 중에 제한된 횟수만큼 다시 시도됩니다. 모든 시험 재시도에 실패하면 구독 서비스가 비활성화됩니다.

다음 상태 코드는 각 유형의 실패에 대한 예제를 제공합니다.

  • 일시적: 408(요청 시간 제한), 502(잘못된 게이트웨이), 503(서비스를 사용할 수 없음), 504(게이트웨이 시간 제한)
  • 터미널: 410(사라지음)
  • 지속형: 일시적 또는 터미널이 아닌 모든 오류

Q: 비활성화 상태(사용자가 프로젝트를 떠남)는 무엇을 의미하나요?

A: 구독을 만든 사용자가 더 이상 팀의 구성원이 아닙니다.

Q: 서비스 후크가 작동하지 않는 경우 어떻게 해야 하나요?

A: 다음 항목을 확인합니다.

  • 구독이 사용하도록 설정되었는지 확인합니다.
  • 구독 설정이 올바른지 확인합니다. 이벤트 필터 및 작업을 확인합니다.
  • 특히 오류가 있는 경우 기록을 살펴보세요.

Q: 일반 프로젝트 사용자에게 프로젝트에 대한 서비스 후크 구독을 보고 관리할 수 있는 기능을 부여할 수 있나요?

A: 기본적으로 프로젝트 관리자만 이러한 권한을 갖습니다. 다른 사용자에게 직접 부여하려면 명령줄 도구 또는 보안 REST API를 사용할 수 있습니다.

Q: 프로그래밍 방식으로 구독을 만들 수 있나요?

A: 예, REST API사용합니다.