Share via


백엔드 서비스 설정

적용 대상: 모든 API Management 계층

set-backend-service 정책을 사용하여 들어오는 요청을 해당 작업의 API 설정에 지정된 것과 다른 백 엔드로 리디렉션합니다. 이 정책은 수신 요청의 백 엔드 서비스 기본 URL을 정책에 지정된 URL 또는 백 엔드로 변경합니다.

백 엔드 엔터티를 참조하면 백 엔드 서비스 기본 URL 및 기타 설정을 한 곳에서 관리하고 여러 API 및 작업에서 다시 사용할 수 있습니다. 또한 백 엔드 서비스 풀 전체의 트래픽 부하 분산회로 차단기 규칙을 구현하여 너무 많은 요청으로부터 백 엔드를 보호합니다.

참고 항목

백엔드 엔터티는 Azure Portal, 관리 APIPowerShell을 통해 관리할 수 있습니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. 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>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.