Zaplecza w usłudze API Management

DOTYCZY: Wszystkie warstwy usługi API Management

Zaplecze (lub zaplecze interfejsu API) w usłudze API Management to usługa HTTP, która implementuje interfejs API frontonu i jego operacje.

Podczas importowania niektórych interfejsów API usługa API Management automatycznie konfiguruje zaplecze interfejsu API. Na przykład usługa API Management konfiguruje usługę internetową zaplecza podczas importowania:

Usługa API Management obsługuje również używanie innych zasobów platformy Azure jako zaplecza interfejsu API, takich jak:

  • Klaster usługi Service Fabric.
  • Usługa niestandardowa.

Zalety zaplecza

Usługa API Management obsługuje jednostki zaplecza, dzięki czemu można zarządzać usługami zaplecza interfejsu API. Jednostka zaplecza hermetyzuje informacje o usłudze zaplecza, promując możliwość ponownego użycia między interfejsami API i ulepszonym ładem.

Użyj zapleczy dla co najmniej jednego z następujących elementów:

  • Autoryzowanie poświadczeń żądań do usługi zaplecza
  • Skorzystaj z funkcji usługi API Management, aby zachować wpisy tajne w usłudze Azure Key Vault, jeśli nazwane wartości są skonfigurowane do uwierzytelniania parametrów nagłówka lub zapytania.
  • Definiowanie reguł wyłącznika w celu ochrony zaplecza przed zbyt wieloma żądaniami
  • Kierowanie lub równoważenie obciążenia żądań do wielu zapleczy

Konfigurowanie jednostek zaplecza i zarządzanie nimi w witrynie Azure Portal lub przy użyciu interfejsów API platformy Azure lub narzędzi.

Odwołuj się do zaplecza przy użyciu zasad set-backend-service

Po utworzeniu zaplecza możesz odwołać się do zaplecza w interfejsach API. Użyj zasad, set-backend-service aby skierować przychodzące żądanie interfejsu API do zaplecza. Jeśli skonfigurowano już usługę internetową zaplecza dla interfejsu API, możesz użyć set-backend-service zasad, aby zamiast tego przekierować żądanie do jednostki zaplecza. Na przykład:

<policies>
    <inbound>
        <base />
        <set-backend-service backend-id="myBackend" />
    </inbound>
    [...]
<policies/>

Logika warunkowa z zasadami set-backend-service umożliwia zmianę efektywnego zaplecza na podstawie lokalizacji, bramy, która została wywołana lub innych wyrażeń.

Na przykład poniżej przedstawiono zasady kierowania ruchu do innego zaplecza na podstawie bramy, która została wywołana:

<policies>
    <inbound>
        <base />
        <choose>
            <when condition="@(context.Deployment.Gateway.Id == "factory-gateway")">
                <set-backend-service backend-id="backend-on-prem" />
            </when>
            <when condition="@(context.Deployment.Gateway.IsManaged == false)">
                <set-backend-service backend-id="self-hosted-backend" />
            </when>
            <otherwise />
        </choose>
    </inbound>
    [...]
<policies/>

Wyłącznik (wersja zapoznawcza)

Począwszy od interfejsu API w wersji 2023-03-01 (wersja zapoznawcza), usługa API Management uwidacznia właściwość wyłącznika w zasobie zaplecza, aby chronić usługę zaplecza przed przeciążenie zbyt wieloma żądaniami.

  • Właściwość wyłącznika definiuje reguły, aby przejeścić wyłącznik, takie jak liczba lub procent warunków awarii w zdefiniowanym przedziale czasu i zakres kodów stanu wskazujących awarie.
  • Gdy wyłącznik przechodzi, usługa API Management zatrzymuje wysyłanie żądań do usługi zaplecza przez zdefiniowany czas i zwraca odpowiedź 503 Usługa niedostępna dla klienta.
  • Po skonfigurowanym czasie trwania podróży obwód zostanie zresetowany i ruch zostanie wznowiony do zaplecza.

Wyłącznik zaplecza jest implementacją wzorca wyłącznika, aby umożliwić zapleczu odzyskiwanie po sytuacjach przeciążenia. Rozszerza ona ogólne zasady ograniczania szybkości i współbieżności , które można zaimplementować w celu ochrony bramy usługi API Management i usług zaplecza.

Uwaga

  • Obecnie wyłącznik zaplecza nie jest obsługiwany w warstwie Zużycie usługi API Management.
  • Ze względu na rozproszony charakter architektury usługi API Management przybliżone są reguły wyłącznika. Różne wystąpienia bramy nie są synchronizowane i będą stosować reguły wyłącznika na podstawie informacji o tym samym wystąpieniu.

Przykład

Użyj interfejsu API REST usługi API Management lub szablonu Bicep lub ARM, aby skonfigurować wyłącznik w zapleczu. W poniższym przykładzie wyłącznik w myBackend w wystąpieniu usługi API Management myAPIM jest wyświetlany, gdy występują trzy lub więcej 5xx kodów stanu wskazujących błędy serwera w ciągu dnia. Wyłącznik resetuje się po godzinie.

Dołącz fragment kodu podobny do poniższego w szablonie Bicep dla zasobu zaplecza z wyłącznikiem:

resource symbolicname 'Microsoft.ApiManagement/service/backends@2023-03-01-preview' = {
  name: 'myAPIM/myBackend'
  properties: {
    url: 'https://mybackend.com'
    protocol: 'https'
    circuitBreaker: {
      rules: [
        {
          failureCondition: {
            count: 3
            errorReasons: [
              'Server errors'
            ]
            interval: 'P1D'
            statusCodeRanges: [
              {
                min: 500
                max: 599
              }
            ]
          }
          name: 'myBreakerRule'
          tripDuration: 'PT1H'
        }
      ]
    }
   }
 }

Pula ze zrównoważonym obciążeniem (wersja zapoznawcza)

Począwszy od interfejsu API w wersji 2023-05-01 (wersja zapoznawcza), usługa API Management obsługuje pule zaplecza, gdy chcesz zaimplementować wiele zapleczy dla interfejsu API i żądań równoważenia obciążenia w tych zapleczach. Obecnie pula zaplecza obsługuje równoważenie obciążenia okrężnego.

Użyj puli zaplecza w scenariuszach, takich jak:

  • Rozłożenie obciążenia na wiele zapleczy, które mogą mieć poszczególne wyłączniki zaplecza.
  • Przenieś obciążenie z jednego zestawu zapleczy na inny w celu uaktualnienia (wdrożenie niebiesko-zielone).

Aby utworzyć pulę zaplecza, ustaw type właściwość zaplecza na pool i określ listę zapleczy tworzących pulę.

Uwaga

  • Obecnie można uwzględnić tylko pojedyncze zaplecza w puli zaplecza. Nie można dodać zaplecza typu pool do innej puli zaplecza.
  • Ze względu na rozproszony charakter architektury usługi API Management równoważenie obciążenia zaplecza jest przybliżone. Różne wystąpienia bramy nie są synchronizowane i będą równoważyć obciążenie na podstawie informacji o tym samym wystąpieniu.

Przykład

Użyj interfejsu API REST usługi API Management lub szablonu Bicep lub ARM, aby skonfigurować pulę zaplecza. W poniższym przykładzie pula zaplecza myBackendPool w wystąpieniu usługi API Management myAPIM jest skonfigurowana z pulą zaplecza. Przykładowe zaplecza w puli mają nazwę backend-1 i backend-2.

Dołącz fragment kodu podobny do poniższego w szablonie Bicep dla zasobu zaplecza z pulą o zrównoważonym obciążeniu:

resource symbolicname 'Microsoft.ApiManagement/service/backends@2023-05-01-preview' = {
  name: 'myAPIM/myBackendPool'
  properties: {
    description: 'Load balancer for multiple backends'
    type: 'Pool'
    protocol: 'http'
    url: 'https://example.com'
    pool: {
      services: [
        {
          id: '/backends/backend-1'
        }
        {
          id: '/backends/backend-2'
        }
      ]
    }
  }
}

Ograniczenie

W przypadku warstw Deweloper i Premium wystąpienie usługi API Management wdrożone w wewnętrznej sieci wirtualnej może zgłaszać błędy HTTP 500 BackendConnectionFailure , gdy adres URL punktu końcowego bramy i adres URL zaplecza są takie same. Jeśli wystąpi to ograniczenie, postępuj zgodnie z instrukcjami w artykule Ograniczenia żądania samoobsługowego usługi API Management w wewnętrznym trybie sieci wirtualnej w blogu Tech Community.

  • Konfigurowanie zaplecza usługi Service Fabric przy użyciu witryny Azure Portal.