Teilen über


Konfigurieren einer API für vom Server gesendete Ereignisse

GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2

Dieser Artikel enthält Richtlinien zum Konfigurieren einer API in API Management, die vom Server gesendete Ereignisse (Server-Sent Events, SSE) implementiert. SSE basiert auf dem HTML5-Standard EventSource für das automatische Streaming (Push-Datenübertragung) von Daten über HTTP an einen Client, nachdem eine Clientverbindung hergestellt wurde.

Tipp

Die API-Verwaltung bietet auch systemeigene Unterstützung für WebSocket-APIs, die eine einzelne, persistente, bidirektionale Verbindung zwischen einem Client und server offen halten.

Voraussetzungen

Richtlinien für SSE

Halten Sie sich an die folgenden Richtlinien, wenn Sie API Management verwenden, um eine Back-End-API zu erreichen, von der SSE implementiert wird:

  • Wählen Sie eine Dienstebene für lange ausgeführte HTTP-Verbindungen aus – SSE basiert auf einer langfristig ausgeführten HTTP-Verbindung, die in bestimmten Preisstufen der API-Verwaltung unterstützt wird. Langfristige Verbindungen werden in den klassischen und v2 API Management-Tarifen unterstützt, nicht aber im Verbrauchstarif.

  • Halten Sie Verbindungen im Leerlauf aufrecht: Wenn sich eine Verbindung zwischen Client und Back-End ggf. vier Minuten oder länger im Leerlauf befindet, implementieren Sie einen Mechanismus, um die Verbindung aufrechtzuerhalten. Aktivieren Sie beispielsweise ein TCP-Keepalive-Signal (Transmission Control Protocol) im Back-End der Verbindung, oder senden Sie mindestens einmal pro 4 Minuten Datenverkehr von der Clientseite.

    Diese Konfiguration ist erforderlich, um die Leerlaufsitzungszeitüberschreitung von 4 Minuten zu überschreiben, die von Azure Load Balancer erzwungen wird und in der API-Management-Infrastruktur verwendet wird.

  • Leiten Sie Ereignisse umgehend an Clients weiter: Deaktivieren Sie die Antwortpufferung in der forward-request-Richtlinie, damit Ereignisse sofort an die Clients weitergeleitet werden. Beispiel:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Vermeiden Sie die Verwendung anderer Richtlinien mit Antwortpufferung: Bestimmte Richtlinien (beispielsweise validate-content) können ebenfalls Antwortinhalte puffern und sollten nicht mit APIs verwendet werden, von denen SSE implementiert wird.

  • Vermeiden Sie die Protokollierung von Anforderungs-/Antworttext für Azure Monitor, Application Insights und Event Hubs: Sie können die API-Anforderungsprotokollierung für Azure Monitor oder Application Insights mithilfe von Diagnoseeinstellungen konfigurieren. Mit den Diagnoseeinstellungen können Sie den Anforderungs-/Antworttext in verschiedenen Phasen der Anforderungsausführung protokollieren. Bei APIs, die SSE implementieren, kann das Protokollieren des Anforderungs-/Antworttexts zu unerwarteten Puffern führen, was zu Problemen führen kann. Diagnoseeinstellungen für Azure Monitor und Application Insights, die im Bereich „Global“ oder „Alle APIs“ konfiguriert werden, gelten für alle APIs im Dienst. Sie können bei Bedarf die Einstellungen für einzelne APIs überschreiben. Bei der Protokollierung in Event Hubs konfigurieren Sie Umfang und Menge der Kontextinformationen für die Anforderungs-/Antwortprotokollierung mithilfe von log-to-eventhubs. Stellen Sie für APIs, die SSE implementieren, sicher, dass Sie die Anforderungs-/Antworttextprotokollierung für Azure Monitor, Application Insights und Event Hubs deaktivieren.

  • Deaktivieren Sie die Zwischenspeicherung von Antworten: Vergewissern Sie sich, dass das Zwischenspeichern von Antworten nicht aktiviert ist, um sicherzustellen, dass Benachrichtigungen den Client zeitnah erreichen. Weitere Informationen finden Sie unter Cacherichtlinien für API Management.

  • Testen Sie die API unter Last: Testen Sie Ihre API mithilfe allgemeiner Methoden unter Last, um Leistungs- oder Konfigurationsprobleme zu erkennen, bevor sie die API in der Produktion verwenden.