Streaminganfragen und -antworten

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Lerninhalte zu diesem Thema

Nachdem Sie dieses Thema gelesen haben, wissen Sie:

  • Was das Anfrage- und Antwort-Streaming auf Apigee Edge ist
  • In welchen Fällen Anfrage- und Antwort-Streaming verwendet werden
  • Anfrage- und Antwortstreaming aktivieren

Was ist Anfrage- und Antwort-Streaming?

HTTP-Streaming ist standardmäßig deaktiviert und HTTP-Anfrage- und -Antwortnutzlasten werden in einen Zwischenspeicher geschrieben, bevor sie von der API-Proxypipeline verarbeitet werden. Sie können dieses Verhalten ändern, indem Sie das Streaming aktivieren. Wenn Streaming aktiviert ist, werden Anfrage- und Antwortnutzlasten ohne Änderung der Client-App (für Antworten) und des Zielendpunkts (für Anfragen) gestreamt.

Wann sollte ich Streaming aktivieren?

Wenn Ihr API-Proxy sehr große Anfragen und/oder Antworten verarbeitet (Informationen zur Größenbeschränkung finden Sie weiter unten im Abschnitt Weitere Informationen zum Streaming), sollten Sie das Streaming aktivieren.

Was sollte ich außerdem über Streaming wissen?

Die Größe der Nachrichtennutzlast ist in Edge Cloud und Private Cloud auf 10 MB beschränkt, auch bei aktiviertem Streaming. Bei nicht gestreamten Anfragen und Antworten führt die Überschreitung dieser Größe zu einem protocol.http.TooBigBody-Fehler.

In Edge für Private Cloud-Bereitstellungen können Sie das Größenlimit für nicht gestreamte Anfragen/Antworten ändern. Testen Sie die Änderung unbedingt, bevor Sie sie in der Produktion bereitstellen.

  • Bei Edge for Private Cloud-Releases vor 4.16.01:

    Bearbeiten Sie bei allen Nachrichtenprozessoren die Datei http.properties, um das Limit im Parameter HTTPResponse.body.buffer.limit zu erhöhen. Starten Sie dann den Message Processor neu.
  • Für Edge for Private Cloud Version 4.16.01 und höher:
    1. Bearbeiten Sie die Datei /<inst_root>/apigee/customer/application/message-processor.properties. Wenn diese Datei nicht vorhanden ist, erstellen Sie sie.

    2. Legen Sie die Eigenschaft conf_http_HTTPResponse.body.buffer.limit in message-processor.properties fest. Beispiel:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Starten Sie den Meldungsprozessor neu:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-Nachrichtenprozessor neu starten

    4. Wiederholen Sie diesen Vorgang für alle Message Processor.

Wie Sie Anfrage- und Antwort-Streaming aktivieren

Zum Aktivieren des Anfragestreamings müssen Sie das Attribut request.streaming.enabled den ProxyEndpoint- und TargetEndpoint-Definitionen im Proxy-Bundle hinzufügen und auf true setzen. Legen Sie entsprechend das Attribut response.streaming.enabled fest, um das Antwort-Streaming zu aktivieren.

Sie finden diese Konfigurationsdateien in der Verwaltungs-UI in der Entwicklungsansicht für Ihren Proxy. Bei der lokalen Entwicklung befinden sich diese Definitionsdateien in apiproxy/proxies und apiproxy/targets.

In diesem Beispiel wird gezeigt, wie sowohl das Anfrage- als auch das Antwort-Streaming in der Definition von TargetEndpoint aktiviert wird.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

In diesem Beispiel wird gezeigt, wie das Antwort- und Anfrage-Streaming in der ProxyEndpoint-Definition aktiviert wird:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

Weitere Informationen zum Konfigurieren von Endpunktdefinitionen finden Sie unter Endpunktattribute – Referenz.

Verwandte Codebeispiele

API-Proxy-Beispiele auf GitHub können leicht heruntergeladen und verwendet werden. Weitere Informationen zum Herunterladen und Verwenden der Beispiele finden Sie unter Beispiel-API-Proxys verwenden.

Beispiele für Proxys mit Feature-Streaming:

  • streaming – Zeigt einen für HTTP-Streaming konfigurierten API-Proxy.
  • Edge Callout: Signed URL Generator – Erläutert die Best Practice, eine signierte URL für den Zugriff auf große Dateien zu generieren, anstatt zu versuchen, sie in einer Anfrage/Antwort zu streamen.