백엔드 서비스 설정
적용 대상: 모든 API Management 계층
set-backend-service
정책을 사용하여 들어오는 요청을 해당 작업의 API 설정에 지정된 것과 다른 백 엔드로 리디렉션합니다. 이 정책은 수신 요청의 백 엔드 서비스 기본 URL을 정책에 지정된 URL 또는 백 엔드로 변경합니다.
백 엔드 엔터티를 참조하면 백 엔드 서비스 기본 URL 및 기타 설정을 한 곳에서 관리하고 여러 API 및 작업에서 다시 사용할 수 있습니다. 또한 백 엔드 서비스 풀 전체의 트래픽 부하 분산과 회로 차단기 규칙을 구현하여 너무 많은 요청으로부터 백 엔드를 보호합니다.
참고 항목
백엔드 엔터티는 Azure Portal, 관리 API 및 PowerShell을 통해 관리할 수 있습니다.
참고 항목
정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.
정책 문
<set-backend-service base-url="base URL of the backend service" backend-id="name of the backend entity specifying base URL of the backend service" sf-resolve-condition="condition" sf-service-instance-name="Service Fabric service name" sf-listener-name="Service Fabric listener name" />
특성
특성 | 설명 | 필수 항목 | 기본값 |
---|---|---|---|
base-url | 새 백 엔드 서비스 기준 URL입니다. 정책 식이 허용됩니다. | base-url 또는 backend-id 중 하나가 있어야 합니다. |
해당 없음 |
backend-id | 파티션의 주 또는 보조 복제본을 라우팅할 백 엔드의 식별자(이름)입니다. 정책 식이 허용됩니다. | base-url 또는 backend-id 중 하나가 있어야 합니다. |
해당 없음 |
sf-resolve-condition | 백 엔드가 Service Fabric 서비스인 경우에만 적용됩니다. 새로 확인할 때마다 Service Fabric 백 엔드에 대한 호출을 반복해야 하는지를 식별하는 조건입니다. 정책 식이 허용됩니다. | 아니요 | 해당 없음 |
sf-service-instance-name | 백 엔드가 Service Fabric 서비스인 경우에만 적용됩니다. 런타임에 서비스 인스턴스를 변경할 수 있습니다. 정책 식이 허용됩니다. | 아니요 | 해당 없음 |
sf-partition-key | 백 엔드가 Service Fabric 서비스인 경우에만 적용됩니다. Service Fabric 서비스의 파티션 키를 지정합니다. 정책 식이 허용됩니다. | 아니요 | 해당 없음 |
sf-listener-name | 백 엔드가 Service Fabric 서비스이고 backend-id 를 사용하여 지정된 경우에만 적용됩니다. Service Fabric Reliable Services를 사용하면 서비스에서 여러 수신기를 만들 수 있습니다. 백 엔드 Reliable Service에 둘 이상의 수신기가 있을 때 이 특성은 사용하여 특정 수신기를 선택합니다. 이 특성을 지정하지 않으면 API Management에서는 이름 없이 수신기를 사용하려고 합니다. 이름이 없는 수신기는 수신기가 하나만 있는 Reliable Services에 일반적입니다. 정책 식이 허용됩니다. |
아니요 | 해당 없음 |
사용
사용법 참고 사항
현재 backend-id
특성을 사용하여 기본 set-backend-service
정책을 정의하고 범위 내에서 <base />
를 사용하여 기본 정책을 상속하는 경우 base-url
특성이 아니라 backend-id
특성을 사용하는 정책으로만 재정의할 수 있습니다.
예제
쿼리 문자열의 값을 기반으로 요청 라우팅
이 예제에서 set-backend-service
정책은 쿼리 문자열에 전달된 버전 값에 기반한 요청을 API에 지정된 것과 다른 백 엔드 서비스로 라우팅합니다.
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/9.1/" />
</when>
</choose>
<base />
</inbound>
<outbound>
<base />
</outbound>
</policies>
처음에는 백 엔드 서비스 기준 URL이 API 설정에서 파생되었습니다. 따라서 https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef
요청 URL은 http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef
가 되고, 여기서 http://contoso.com/api/10.4/
는 API 설정에 지정된 백 엔드 서비스 URL입니다.
<choose> 정책 문을 적용하면 백 엔드 서비스 기준 URL은 버전 요청 쿼리 매개 변수의 값에 따라 http://contoso.com/api/8.2
또는 http://contoso.com/api/9.1
로 다시 변경될 수 있습니다. 예를 들어 값이 "2013-15"
이면 최종 요청 URL은 http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef
가 됩니다.
추가 변환 요청이 필요한 경우 다른 변환 정책을 사용할 수 있습니다. 예를 들어 요청이 버전 특정 백 엔드로 라우팅되고 있어 버전 쿼리 매개 변수를 제거하려면 쿼리 문자열 설정 매개 변수 정책을 사용하여 현재의 중복 버전 특성을 제거할 수 있습니다.
서비스 패브릭 백 엔드로 요청 라우팅
이 예제에서 정책은 userId 쿼리 문자열을 파티션 키로 사용하고 파티션의 주 복제본을 사용하여 서비스 패브릭 백 엔드로 요청을 라우팅합니다.
<policies>
<inbound>
<set-backend-service backend-id="my-sf-service" sf-partition-key="@(context.Request.Url.Query.GetValueOrDefault("userId","")" sf-replica-type="primary" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- Azure API Management 정책 도구 키트
- Azure의 Microsoft Copilot을 사용하는 작성자 정책