Einrichten eines Service Fabric-Back-Ends in API Management über das Azure-Portal

In diesem Artikel wird beschrieben, wie Sie im Azure-Portal einen Service Fabric-Dienst als benutzerdefiniertes API-Back-End konfigurieren. Zu Demonstrationszwecken wird gezeigt, wie Sie einen einfachen zustandslosen zuverlässigen ASP.NET Core-Dienst als Service Fabric-Back-End einrichten.

Hintergrundinformationen finden Sie unter Back-Ends in API Management.

Voraussetzungen

Für die Konfiguration eines Beispieldiensts in einem Service Fabric-Cluster unter Windows als benutzerdefiniertes Back-End gelten folgende Voraussetzungen:

  • Windows-Entwicklungsumgebung: Installieren Sie Visual Studio 2019 und die Workloads Azure-Entwicklung, ASP.NET und Webentwicklung und Plattformübergreifende .NET Core-Entwicklung. Richten Sie dann eine .NET-Entwicklungsumgebung ein.

  • Service Fabric-Cluster: Siehe Tutorial: Bereitstellen eines Service Fabric-Clusters mit Windows in einem virtuellen Azure-Netzwerk. Sie können einen Cluster mit einem vorhandenen X.509-Zertifikat erstellen oder zu Testzwecken ein neues selbstsigniertes Zertifikat erstellen. Der Cluster wird in einem virtuellen Netzwerk erstellt.

  • Service Fabric-Beispiel-App - Erstellen Sie eine Web-API-App und stellen Sie diese wie unter Integrieren von API Management in Service Fabric in Azure beschrieben im Service Fabric-Cluster bereit.

    Mit diesen Schritten wird mithilfe der Standardvorlage für Web-API-Projekte ein einfacher zustandsloser zuverlässiger ASP.NET Core-Dienst erstellt. Später machen Sie den HTTP-Endpunkt für diesen Dienst über Azure API Management verfügbar.

    Notieren Sie den Anwendungsnamen, z. B. fabric:/myApplication/myService.

  • API Management-Instanz - Eine vorhandene oder neue API Management-Instanz im Premium- oder Developer-Tarif und in der gleichen Region wie der Service Fabric-Cluster. Wenn dies erforderlich ist, erstellen Sie eine API Management-Instanz.

  • Virtuelles Netzwerk: Fügen Sie die API Management-Instanz in dem virtuellen Netzwerk hinzu, das Sie für den Service Fabric-Cluster erstellt haben. Für API Management ist ein dediziertes Subnetz im virtuellen Netzwerk erforderlich.

    Die Schritte zum Aktivieren der Verbindung mit einem virtuellen Netzwerk für die API Management-Instanz finden Sie unter Verwenden von Azure API Management mit virtuellen Netzwerken.

Erstellen eines Back-Ends über das Portal

Hinzufügen des Service Fabric-Clusterzertifikats in API Management

Das Service Fabric-Clusterzertifikat wird in einem Azure-Schlüsseltresor gespeichert und verwaltet, der dem Cluster zugeordnet ist. Fügen Sie dieses Zertifikat Ihrer API Management-Instanz als Clientzertifikat hinzu.

Die Schritte zum Hinzufügen eines Zertifikats zu einer API Management-Instanz finden Sie unter Sichern von Back-End-Diensten über eine Clientzertifikatauthentifizierung in Azure API Management.

Hinweis

Es wird empfohlen, das Zertifikat durch Verweisen auf das Schlüsseltresorzertifikat in API Management hinzuzufügen.

Hinzufügen eines Service Fabric-Back-Ends

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.

  2. Wählen Sie unter APIs die Optionen Back-Ends>+ Hinzufügen aus.

  3. Geben Sie einen Namen für das Back-End und optional eine Beschreibung ein.

  4. Wählen Sie unter Typ den Typ Service Fabric aus.

  5. Geben Sie unter Laufzeit-URL den Namen des Service Fabric-Back-End-Diensts ein, an den API Management Anforderungen weiterleiten soll. Beispiel: fabric:/myApplication/myService.

  6. Geben Sie unter Maximum number of partition resolution retries (Maximale Anzahl der Wiederholungsversuche für Partitionsauflösung) eine Zahl zwischen 0 und 10 ein.

  7. Geben Sie den Verwaltungsendpunkt des Service Fabric-Clusters ein. Dieser Endpunkt ist die URL des Clusters am Port 19080, z. B. https://mysfcluster.eastus.cloudapp.azure.com:19080.

  8. Wählen Sie unter Clientzertifikat das Service Fabric-Clusterzertifikat aus, das Sie der API Management-Instanz im vorherigen Abschnitt hinzugefügt haben.

  9. Geben Sie unter Management endpoint authorization method (Autorisierungsmethode für Verwaltungsendpunkt) einen Fingerabdruck oder Servernamen eines X509-Zertifikats ein, das im Verwaltungsdienst des Service Fabric-Clusters für die TLS-Kommunikation verwendet wird.

  10. Aktivieren Sie die Einstellungen Validate certificate chain (Zertifikatkette überprüfen) und Validate certificate name (Zertifikatname überprüfen).

  11. Geben Sie unter Authorization credentials (Anmeldeinformationen für die Autorisierung) gegebenenfalls die Anmeldeinformationen zur Verbindung mit dem konfigurierten Back-End-Dienst in Service Fabric an. Für die hier verwendete Beispiel-App sind keine Anmeldeinformationen für die Autorisierung erforderlich.

  12. Wählen Sie Erstellen aus.

    Erstellen eines Service Fabric-Back-Ends

Verwenden des Back-Ends

Zur Verwendung eines benutzerdefinierten Back-Ends verweisen Sie mit der Richtlinie set-backend-service darauf. Mit dieser Richtlinie wird die Basis-URL des Standard-Back-Ends einer eingehenden API-Anforderung in ein angegebenes Back-End transformiert, in diesem Fall in das Service Fabric-Back-End.

Die Richtlinie set-backend-service kann bei einer vorhandenen API nützlich sein, um eine eingehende Anforderung in ein anderes Back-End zu transformieren als in den API-Einstellungen angegeben ist. Zu Demonstrationszwecken erstellen Sie in diesem Artikel eine Test-API und legen die Richtlinie so fest, dass API-Anforderungen an das Service Fabric-Back-End weitergeleitet werden.

API erstellen

Führen Sie die Schritte unter Manuelles Hinzufügen einer API aus, um eine leere API zu erstellen.

  • Lassen Sie in den API-Einstellungen das Feld Webdienst-URL leer.

  • Fügen Sie ein API-URL-Suffix ein, z. B. fabric.

    Erstellen einer leeren API

Hinzufügen eines GET-Vorgangs zur API

Wie unter Bereitstellen eines Service Fabric-Back-End-Diensts gezeigt, unterstützt der ASP.NET Core-Beispieldienst, der im Service Fabric-Cluster bereitgestellt wird, einen einzelnen HTTP GET-Vorgang für den URL-Pfad/api/values.

Die Standardantwort für diesen Pfad ist ein JSON-Array von zwei Zeichenfolgen:

["value1", "value2"]

Um die Integration von API Management in den Cluster zu testen, fügen Sie der API den entsprechenden GET-Vorgang für den Pfad /api/values hinzu:

  1. Wählen Sie die API aus, die Sie im vorherigen Schritt erstellt haben.

  2. Klicken Sie auf + Vorgang hinzufügen.

  3. Geben Sie im Fenster Front-End die folgenden Werte ein, und wählen Sie Speichern aus.

    Einstellung Wert
    Anzeigename Test backend
    URL GET
    URL /api/values

    Hinzufügen des GET-Vorgangs zur API

Konfigurieren der Richtlinie set-backend-service

Fügen Sie der Test-API die Richtlinie set-backend-service hinzu.

  1. Wählen Sie auf der Registerkarte Design im Bereich Eingehende Verarbeitung das Symbol für den Code-Editor (</>) aus.

  2. Positionieren Sie den Cursor im <inbound> -Element.

  3. Fügen Sie die set-service-backend Richtlinienanweisung hinzu.

    • Geben Sie in backend-id den Namen Ihres Service Fabric-Back-Ends ein.

    • sf-resolve-condition ist eine Bedingung zum erneuten Auflösen einer Dienstidentifizierung und zum erneuten Senden einer Anforderung. Die Anzahl der Wiederholungsversuche wurde beim Konfigurieren des Back-Ends festgelegt. Beispiel:

      <set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
      
  4. Wählen Sie Speichern aus.

    Konfigurieren der Richtlinie „set-backend-service“

Hinweis

Wenn mindestens ein Knoten im Service Fabric Cluster ausfällt oder entfernt wird, erhält API Management keine automatische Benachrichtigung und sendet weiterhin Datenverkehr an diese Knoten. Um diese Fälle zu behandeln, konfigurieren Sie eine Auflösungsbedingung ähnlich der folgenden: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"

Testen der Back-End-API

  1. Wählen Sie auf der Registerkarte Test den GET-Vorgang aus, den Sie im vorherigen Abschnitt erstellt haben.

  2. Klicken Sie auf Senden.

    Wenn die HTTP-Antwort ordnungsgemäß konfiguriert ist, werden ein HTTP-Erfolgscode und der vom Back-End des Service Fabric-Diensts zurückgegebene JSON-Code angezeigt.

    Testen des Service Fabric-Back-Ends