Streaminganfragen und -antworten

Sie lesen gerade die Apigee Edge -Dokumentation.
Zur Apigee X -Dokumentation.
info

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
  • Wie Sie Anfrage- und Antwort-Streaming 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 Nachrichtennutzlast ist in Edge Cloud und Private Cloud auf 10 MB beschränkt, auch wenn Streaming aktiviert ist. Bei nicht gestreamten Anfragen und Antworten führt die Überschreitung dieser Größe zu einem protocol.http.TooBigBody Fehler.

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

  • Für Edge for Private Cloud-Versionen vor 4.16.01:

    Bearbeiten Sie auf allen Message Processors die Datei http.properties, um die Beschränkung im Parameter HTTPResponse.body.buffer.limit zu erhöhen, und 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 die Datei nicht vorhanden ist, erstellen Sie sie.

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

    3. Starten Sie den Message Processor neu:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. Wiederholen Sie diesen Schritt für alle Message Processors.

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 Management-UI in der Ansicht „Entwicklung“ 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: Hier wird ein API-Proxy gezeigt, der für HTTP-Streaming konfiguriert ist.
  • Edge-Callout: Signierte URL-Generator: Hiermit wird empfohlen, eine signierte URL zu generieren, um auf große Dateien zuzugreifen, anstatt sie in einer Anfrage/Antwort zu streamen.