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.
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:
Wählen Sie die API aus, die Sie im vorherigen Schritt erstellt haben.
Klicken Sie auf + Vorgang hinzufügen.
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 |
Fügen Sie der Test-API die Richtlinie set-backend-service
hinzu.
Wählen Sie auf der Registerkarte Design im Bereich Eingehende Verarbeitung das Symbol für den Code-Editor (</>) aus.
Positionieren Sie den Cursor im <inbound> -Element.
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")"/>
Wählen Sie Speichern aus.
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