Konfigurera en Service Fabric-serverdel i API Management med hjälp av Azure-portalen

Den här artikeln visar hur du konfigurerar en Service Fabric-tjänst som en anpassad API-serverdel med hjälp av Azure-portalen. I demonstrationssyfte visar den hur du konfigurerar en grundläggande tillståndslös ASP.NET Core Reliable Service som Service Fabric-serverdelen.

Bakgrund finns i Serverdelar i API Management.

Förutsättningar

Förutsättningar för att konfigurera en exempeltjänst i ett Service Fabric-kluster som kör Windows som en anpassad serverdel:

  • Windows-utvecklingsmiljö – Installera Visual Studio 2019 och Azure-utveckling, ASP.NET och webbutveckling samt arbetsbelastningar för plattformsoberoende utveckling i .NET Core. Konfigurera sedan en .NET-utvecklingsmiljö.

  • Service Fabric-kluster – Se Självstudie: Distribuera ett Service Fabric-kluster som kör Windows till ett virtuellt Azure-nätverk. Du kan skapa ett kluster med ett befintligt X.509-certifikat eller i testsyfte skapa ett nytt självsignerat certifikat. Klustret skapas i ett virtuellt nätverk.

  • Exempel på Service Fabric-app – Skapa en webb-API-app och distribuera till Service Fabric-klustret enligt beskrivningen i Integrera API Management med Service Fabric i Azure.

    De här stegen skapar en grundläggande tillståndslös ASP.NET Core Reliable Service med hjälp av standardmallen webb-API-projekt. Senare exponerar du HTTP-slutpunkten för den här tjänsten via Azure API Management.

    Anteckna programnamnet, till exempel fabric:/myApplication/myService.

  • API Management-instans – en befintlig eller ny API Management-instans på premium - eller utvecklarnivån och i samma region som Service Fabric-klustret. Om du behöver en skapar du en API Management-instans.

  • Virtuellt nätverk – Lägg till din API Management-instans i det virtuella nätverk som du skapade för Service Fabric-klustret. API Management kräver ett dedikerat undernät i det virtuella nätverket.

    Anvisningar för hur du aktiverar anslutning till virtuella nätverk för API Management-instansen finns i Så här använder du Azure API Management med virtuella nätverk.

Skapa serverdel – portalen

Lägga till Service Fabric-klustercertifikat i API Management

Service Fabric-klustercertifikatet lagras och hanteras i ett Azure-nyckelvalv som är associerat med klustret. Lägg till det här certifikatet i DIN API Management-instans som ett klientcertifikat.

Anvisningar för hur du lägger till ett certifikat i DIN API Management-instans finns i Så här skyddar du serverdelstjänster med klientcertifikatautentisering i Azure API Management.

Kommentar

Vi rekommenderar att du lägger till certifikatet i API Management genom att referera till nyckelvalvscertifikatet.

Lägg till Service Fabric-serverdel

  1. I Azure-portalen går du till din API Management-instans.

  2. Under API:er väljer du Serverdelar>+ Lägg till.

  3. Ange ett serverdelsnamn och en valfri beskrivning

  4. I Typ väljer du Service Fabric.

  5. I Körnings-URL anger du namnet på den Service Fabric-serverdelstjänst som API Management vidarebefordrar begäranden till. Exempel: fabric:/myApplication/myService.

  6. I Maximalt antal återförsök för partitionsmatchning anger du ett tal mellan 0 och 10.

  7. Ange hanteringsslutpunkten för Service Fabric-klustret. Den här slutpunkten är URL:en för klustret på port 19080, till exempel https://mysfcluster.eastus.cloudapp.azure.com:19080.

  8. I Klientcertifikat väljer du det Service Fabric-klustercertifikat som du lade till i DIN API Management-instans i föregående avsnitt.

  9. I Auktoriseringsmetod för hanteringsslutpunkt anger du ett tumavtryck eller ett X509-servernamn för ett certifikat som används av Service Fabric-klusterhanteringstjänsten för TLS-kommunikation.

  10. Aktivera inställningarna Verifiera certifikatkedja och Verifiera certifikatnamn.

  11. I Autentiseringsuppgifter för auktorisering anger du autentiseringsuppgifter om det behövs för att nå den konfigurerade serverdelstjänsten i Service Fabric. För exempelappen som används i det här scenariot behövs inte autentiseringsuppgifter för auktorisering.

  12. Välj Skapa.

    Skapa en service fabric-serverdel

Använda serverdelen

Om du vill använda en anpassad serverdel refererar du till den med hjälp av set-backend-service principen. Den här principen omvandlar standardbas-URL:en för serverdelstjänsten för en inkommande API-begäran till en angiven serverdel, i det här fallet Service Fabric-serverdelen.

Principen set-backend-service kan vara användbar med ett befintligt API för att omvandla en inkommande begäran till en annan serverdel än den som anges i API-inställningarna. I demonstrationssyfte i den här artikeln skapar du ett test-API och ställer in principen för att dirigera API-begäranden till Service Fabric-serverdelen.

Skapa API

Följ stegen i Lägg till ett API manuellt för att skapa ett tomt API.

  • Lämna url:en för webbtjänsten tom i API-inställningarna.

  • Lägg till ett API URL-suffix, till exempel infrastrukturresurser.

    Skapa tomt API

Lägga till GET-åtgärden i API:et

Som du ser i Distribuera en Service Fabric-serverdelstjänst stöder exempeltjänsten ASP.NET Core som distribueras i Service Fabric-klustret en enda HTTP GET-åtgärd på URL-sökvägen /api/values.

Standardsvaret på den sökvägen är en JSON-matris med två strängar:

["value1", "value2"]

Om du vill testa integreringen av API Management med klustret lägger du till motsvarande GET-åtgärd i API:et på sökvägen /api/values:

  1. Välj det API som du skapade i föregående steg.

  2. Välj + Lägg till åtgärd.

  3. I fönstret Klientdel anger du följande värden och väljer Spara.

    Inställning Värde
    Visningsnamn Testa serverdelen
    URL GET
    URL /api/values

    Lägga till GET-åtgärd i API:et

Konfigurera set-backend-service princip

set-backend-service Lägg till principen i test-API:et.

  1. På fliken Design i avsnittet Inkommande bearbetning väljer du kodredigerarens (</>) ikon.

  2. Placera markören inuti det <inkommande> elementet

  3. Lägg till policy-instruktionen set-service-backend .

    • I backend-idersätter du namnet på Service Fabric-serverdelen.

    • sf-resolve-condition är ett villkor för att matcha en tjänstplats igen och skicka en begäran igen. Antalet återförsök angavs när serverdelen konfigurerades. Till exempel:

      <set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
      
  4. Välj Spara.

    Konfigurera princip för set-backend-service

Kommentar

Om en eller flera noder i Service Fabric-klustret går ned eller tas bort, får API Management inget automatiskt meddelande och fortsätter att skicka trafik till dessa noder. Om du vill hantera dessa fall konfigurerar du ett lösningsvillkor som liknar: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"

Testa serverdels-API

  1. På fliken Test väljer du den GET-åtgärd som du skapade i ett tidigare avsnitt.

  2. Välj Skicka.

    När http-svaret är korrekt konfigurerat visar det en HTTP-framgångskod och visar JSON som returneras från serverdelstjänsten Service Fabric.

    Testa Service Fabric-serverdelen