Azure API가 빈 응답을 반환합니다.
Azure API Management 문제 해결 시리즈에 대한 문서를 참조하면 랩의 첫 번째 시나리오입니다. 이에 따라 랩 설정 지침을 따라 문제를 다시 만들어야 합니다.
원래 제품 버전: API Management 서비스
원래 KB 번호: 4464936
증상
API Blank API는 GetHeaders와 GetMyIp의 두 가지 작업으로 구성됩니다. GetMyIp 는 X-FORWARDED-FOR 헤더 값의 값을 반환하고 GetHeaders는 모든 요청 헤더 값을 반환합니다. GetMyIp 은 예상 출력을 반환하지만 갑자기 GetHeaders 가 빈 응답(응답 본문 없음)을 반환하기 시작했습니다.
GetHeaders API의 예상 출력은 다음과 같아야 합니다.
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.5",
"Connection": "close",
"Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
"Host": "eu.httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
}
}
문제 해결 단계
이러한 종류의 문제를 디버그하기 위해 가장 좋은 방법은 APIM 검사기 추적을 수집하여 APIM 파이프라인 내에서 요청 처리를 검사하는 것입니다.
- 추적을 살펴보면 전달 요청 정책이 누락된 것을 알 수 있습니다.
- 전달 요청 정책은 들어오는 요청을 요청 컨텍스트에 지정된 백 엔드 서비스로 전달합니다.
- 요청에서 이 정책을 제거하면 백 엔드 서비스로 전달되지 않고 인바운드 섹션에 있는 정책이 성공적으로 완료되는 즉시 아웃바운드 섹션에 있는 정책이 평가됩니다.
- 따라서 Blank-API에서 GetHeaders 작업의 백 엔드> 섹션을 확인<하면 전달 요청 정책이 제거됩니다.
- 백 엔드 섹션에 정방향 요청 정책을 추가하거나 기본/>요소를 추가하여 <문제를 해결해야 하는 부모 수준(즉, API 수준)에서 전달 요청 정책을 상속합니다.
자세한 내용은 전달 요청 정책에 대해 읽어보세요.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.