티스토리 뷰

API Management에
API를 등록하고, Backend 연결을 완료했다.
Test 탭에서
Header, Body 아무 것도 입력하지 않고 테스트를 시도했더니
Backend에 도달해서
Backend가 응답한 메시지를 그대로 가지고 왔다.
응답 코드: 400, Bad Request
body: 에러 메시지에 대한 내용이 담겨있는데, 우리가 어떤 기술로 Backend를 운영하고 있는지 들킬(?) 메시지가 나온다.
Backend가 패키지라 메시지를 수정할 수 없으니
APIM에서 처리할 수 있을거 같아서 매뉴얼을 찾아봤다.
해결 방법은 Outbound Policy를 활용했다.
https://learn.microsoft.com/ko-kr/azure/api-management/api-management-howto-policies
늘 그렇듯 매뉴얼 한참 보고 이해함.
처음엔 on-error 영역에 내용을 추가했다가
응답코드 400은 에러가 아니니까 outbound 영역에 로직을 추가하니 원하는 결과를 얻을 수 있었다.
<policies>
<inbound>
<!-- 요청 처리 정책 -->
<base />
</inbound>
<backend>
<!-- 백엔드 호출 정책 -->
<base />
</backend>
<outbound>
<!-- 응답 처리 정책 -->
<choose>
<when condition="@(context.Response.StatusCode == 400)">
<set-status code="400" reason="Bad Request" />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>
{
"error": {
"code": "400",
"message": "Your custom error message for bad requests."
}
}
</set-body>
</when>
<otherwise>
<!-- 다른 에러 처리 -->
</otherwise>
</choose>
</outbound>
<on-error>
<base />
</on-error>
</policies>'Azure' 카테고리의 다른 글
| Azure Open AI로 GPT-4o모델 쓰면 비용이 얼마 나올까요? (0) | 2025.01.09 |
|---|---|
| [Azure DevOps] MS hosted agent - no space left on device (0) | 2024.12.19 |
| Azure API Management 써 본 이야기 (0) | 2024.09.19 |
| Promptflow 소스 kubernetes 환경에 배포하기 - error case #1 (0) | 2024.09.13 |
| Azure API Management - 내부모드 (0) | 2024.09.05 |
댓글