Weiterleitungsproxy für API-Proxys konfigurieren

Weiterleitungsproxys bieten einen zentralen Punkt, über den mehrere Maschinen Anfragen an einen externen Server senden. Sie können Sicherheitsrichtlinien erzwingen, Anfragen protokollieren und analysieren und andere Aktionen ausführen, sodass Anfragen Ihren Geschäftsregeln entsprechen.

Mit einem Forward-Proxy in Apigee Hybrid können Sie den gesamten ausgehenden Traffic aus Ihrem Kubernetes-Cluster abfangen und verwalten. Dazu gehören API-Proxy-Anfragen an Zielendpunkte und die Kommunikation mit *.googleapis.com, die die Hybrid-Laufzeit für ihren Debugging- und Analyse-Pipeline und für Richtlinien wie MessageLogging und die KI-Richtlinien (z. B. SanitizeUserPrompt und SemanticCacheLookup) ausführt.

Wenn Sie einen HTTP-Weiterleitungsproxy zwischen Hybrid und TargetEndpoint verwenden möchten, müssen Sie die Einstellungen für ausgehenden Proxy in Ihrer Überschreibungsdatei konfigurieren. Diese umgebungsbezogenen Attribute leiten Zielanfragen von Hybrid an den HTTP-Weiterleitungsproxy weiter. Achten Sie außerdem darauf, dass use.proxy für jeden TargetEndpoint auf „true“ gesetzt ist, den Sie über einen HTTP-Weiterleitungsproxy durchlaufen möchten. Eine Anleitung finden Sie unten auf der Seite.

Wenn Sie eine Hybridumgebung für das Weiterleitungs-Proxying konfigurieren möchten, fügen Sie der Überschreibungendatei das Attribut envs.httpProxy hinzu und wenden Sie es auf den Cluster an. Beispiel:

envs:
  - name: test
    httpProxy:
      scheme: HTTP
      host: 10.12.0.47
      port: 3128
      ...

Weitere Informationen zu den einzelnen Konfigurationsattributen von envs.httpProxy finden Sie in der Referenz zu Konfigurationsattributen.

Ein Weiterleitungsproxy ist für eine Umgebung konfiguriert. Der gesamte Traffic, der von API-Proxys in dieser Umgebung zu Backend-Zielen geleitet wird, wird über den angegebenen HTTP-Weiterleitungsproxy geleitet. Wenn der Traffic für ein bestimmtes Ziel eines API-Proxys direkt zum Backend-Ziel geleitet werden soll, die den Weiterleitungsproxy umgehen, legen Sie das folgende Attribut im TargetEndpoint fest, um den HTTP-Weiterleitungsproxy zu überschreiben:

<Property name="use.proxy">false</Property>

Weitere Informationen zum Festlegen der TargetEndpoint-Attribute, einschließlich der Konfiguration der Verbindung zum Zielendpunkt, finden Sie unter Referenz für Zielpunktattribute.

Setzen Sie use.proxy auf „true” für jeden TargetEndpoint, den Sie über einen HTTP-Weiterleitungsproxy durchlaufen möchten:

<Property name="use.proxy">true</Property>

Wenn Sie eine Firewall im Backend haben, die so konfiguriert ist, dass der Host-Header immer den Hostnamen des Backend-Servers enthält, während der Message Processor den Hostnamen des Proxyservers sendet, gehen Sie so vor, um diese Option zu konfigurieren:

Legen Sie das Attribut use.proxy.host.header.with.target.uri im TargetEndpoint auf „true“ fest, wie im folgenden Beispiel gezeigt:

Beispiel für eine TargetEndpoint-Konfiguration:

  <TargetEndpoint name="default">
    <HTTPTargetConnection>
      <URL>https://mocktarget.apigee.net/json</URL>
      <Properties>
        <Property name="use.proxy.host.header.with.target.uri">true</Property>
      </Properties>
    </HTTPTargetConnection>
  </TargetEndpoint>

Weitere Informationen zum Attribut use.proxy.host.header.with.target.uri finden Sie in der Referenz für Endpunktattribute.

KI-Richtlinien und Forward-Proxy

Die Model Armor-Richtlinien (SanitizeUserPrompt und SanitizeModelResponse) und die Richtlinien für den semantischen Cache (SemanticCacheLookup und SemanticCachePopulate) führen beim Verarbeiten von Anfragen und Antworten ausgehende Aufrufe aus. Dazu gehören die Model Armor-Bereinigungsaufrufe sowie die Agent Platform-Texteinbettungen, die Vektorsuche findNeighbors und die upsertDatapoints-Aufrufe.

Wenn ein Weiterleitungsproxy für die Umgebung mit envs.httpProxy konfiguriert ist, werden alle oben genannten Aufrufe standardmäßig über den Weiterleitungsproxy weitergeleitet. Eine Konfiguration auf Richtlinienebene ist nicht erforderlich. Dieses Verhalten gilt auch für Endpunkte, die nicht unter *.googleapis.com liegen, z. B. für den öffentlichen Vektorsuchendpunkt, der von „SemanticCacheLookup“ aufgerufen wird.

Diese Richtlinienaufrufe an externe Dienste werden genauso behandelt wie der Trace- und Analysetraffic der Laufzeit: Wenn envs[].managementCallsSkipProxy auf true gesetzt ist, wird der Forward-Proxy übersprungen und der Egress erfolgt direkt. Das Überspringen des Weiterleitungsproxys gilt für alle oben aufgeführten Aufrufe (d.h. Bereinigung, Texteinbettungen, findNeighbors und upsertDatapoints). Dieses Verhalten des Weiterleitungsproxys auf Proxyebene ist unabhängig von einem TargetEndpoint, dessen Verhalten des Weiterleitungsproxys durch die eigene use.proxy-Eigenschaft gesteuert wird.