API-Proxys verketten

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

Sie können angeben, dass ein Proxy der Zielendpunkt eines anderen sein soll, wodurch die beiden Proxys in einer Proxykette miteinander verbunden werden. Durch diese Art der Verkettung von Proxys können Sie einen Netzwerk-Hop vermeiden und so die Gesamtleistung verbessern.

Bei der Proxy-Verkettung geben Sie an, dass ein Proxy der lokale Zielendpunkt des anderen ist. Anstatt das Element HTTPTargetConnection zum Aufrufen des zweiten Proxys zu verwenden, verwenden Sie das Element LocalTargetConnection.

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

Die Proxyverkettung kann nützlich sein, wenn Sie einen Proxy haben, der eine diskrete Low-Level-Funktionalität bietet, die andere Proxys nutzen. Beispielsweise kann ein Proxy, der Erstellungs-/Lese-/Aktualisierungs-/Löschvorgänge mit einem Back-End-Datenspeicher ausgibt, der Zielproxy für mehrere andere Proxys sein, die die Daten für Clients verfügbar machen.

Video: Schauen Sie sich ein kurzes Video an, um mehr über die API-Proxyverkettung zu erfahren.

Funktionsweise der Proxyverkettung

Die Proxyverkettung verwendet eine lokale Verbindung, um den Netzwerk-Overhead beim Aufrufen eines Proxys von einem anderen Proxy zu minimieren. Diese lokale Verbindung ist effizienter, weil sie Netzwerkfunktionen wie Load-Balancer, Router und Nachrichtenverarbeiter umgeht.

Im Folgenden wird der Unterschied zwischen der Verbindung von Proxys über HTTPTargetConnection und LocalTargetConnection (Proxy-Verkettung) dargestellt:

Um Proxys zu verbinden, geben Sie an, dass einer der Proxys ein lokaler Zielendpunkt des anderen ist. Sie können eine lokale Verbindung zwischen Proxys auf zwei Arten herstellen:

  • Durch Angabe des Namens des Zielproxys und eines ProxyEndpoint-Namens
  • Sie geben einen Pfad zum Zielproxy-Endpunkt an.

Sie verbinden Zielproxys innerhalb einer TargetEndpoint-Konfiguration mithilfe des Elements LocalTargetConnection, wie unten beschrieben.

Proxys nach Proxynamen verbinden

Sie können den Zielproxy nach Namen angeben. Dies kann nützlich sein, wenn Sie die Verbindung von Anfang an erstellen und die Proxys gemeinsam entwickeln. Wenn Sie den Namen nicht kennen (oder der Name sich möglicherweise ändert), sollten Sie eine Verbindung mit dem Endpunktpfad des Zielproxys herstellen, wie unten beschrieben.

Wenn Sie eine Verbindung zu einem Zielproxy durch einen Namen herstellen, geben Sie den Namen des Proxys und den Namen seines ProxyEndpoint an.

Im folgenden Beispiel wird ein Zielproxy namens data-manager sowie der von data-manager bereitgestellte ProxyEndpoint-Name angegeben. Weitere Informationen finden Sie in der Referenz zur API-Proxy-Konfiguration.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <APIProxy>data-manager</APIProxy>
        <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
</TargetEndpoint>

Proxys nach Pfad verbinden

Sie können den Zielproxy durch seinen Endpunktpfad angeben. Dies ist zum Beispiel sinnvoll, wenn Sie den Proxynamen nicht kennen oder der Name sich ändert.

Wenn Ihr Proxy einfach der Nutzer des Zielproxys ist, z. B. wenn Sie nicht beides entwickeln, ist der Pfad möglicherweise die zuverlässigste Verbindungsmethode. Wenn der Proxy, zu dem Sie eine Verbindung herstellen, beispielsweise von einem anderen Team entwickelt und verwaltet wird, können Sie eine Verbindung mit einem zuverlässigen Endpunktpfad herstellen.

Im folgenden Beispiel wird ein Zielproxy unter /v1/streetcarts/foodcarts/data-manager angegeben, wobei davon ausgegangen wird, dass der Host mit dem aktuellen Proxy identisch ist. Weitere Informationen finden Sie in der Referenz zur API-Proxy-Konfiguration.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <Path>/v1/streetcarts/foodcarts/data-manager</Path> 
    </LocalTargetConnection>
</TargetEndpoint>

Proxys mit der Verwaltungskonsole verbinden

Sie können Proxy-Verkettungsverbindungen mit der Edge-Verwaltungskonsole erstellen.

  1. Öffnen Sie den Proxy, der den Zielproxy verwenden soll.
  2. Klicken Sie in der Navigation auf das Pluszeichen neben Zielendpunkte.
  3. Geben Sie im Dialogfeld Neuer Zielendpunkt den Namen des Zielendpunkts ein.
  4. Wählen Sie unter dem Feld Name des Zielendpunkts eine der folgenden Optionen aus:
    • Proxy-Verkettung, um aus einer Liste von Proxys auszuwählen, die bereits in der Organisation und Umgebung vorhanden sind.
      1. Wählen Sie im Drop-down-Feld Proxyname den Zielproxy aus.
      2. Geben Sie im Feld Proxy-Endpunkt den Zielproxy-Endpunktpfad ein, mit dem Sie eine Verbindung herstellen möchten.
    • Pfadverkettung, um den Basispfad des Zielproxys einzugeben, z. B. /mypath/myproxy/myendpoint.
  5. Klicken Sie auf Add.

Verkettete Proxys, API-Produkte und Sicherheit

Die Proxy-Verkettung ist ideal, wenn sich beide Proxys im selben API-Produkt befinden. Standardmäßig sind beide Clients für die Kunden verfügbar. Apigee unterstützt derzeit nicht, dass der zweite Proxy in einem separaten API-Produkt gebündelt wird, auf das Clients keinen Zugriff haben sollten.

Wenn Ihr zweiter Proxy gegen direkte Clientanfragen gesichert werden muss, sollten Sie eine Logik hinzufügen, damit Ihr zweiter Proxy die IP-Adresse des Clients prüft. Bei einem Aufruf über die Kette ist die IP-Adresse lokal. Ihr Code kann prüfen, ob er lokal ist, bevor die Verarbeitung fortgesetzt werden kann. Eine Möglichkeit hierzu finden Sie in der Zugriffssteuerungsrichtlinie.