Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
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. Ein Proxy, der Vorgänge zum Erstellen/Lesen/Aktualisieren/Löschen mit einem Back-End-Datenspeicher verfügbar macht, kann beispielsweise 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 mit HTTPTargetConnection
und LocalTargetConnection
(Proxy-Verkettung) veranschaulicht:
Um Proxys zu verbinden, geben Sie an, dass einer der Proxys ein lokaler Zielendpunkt des anderen ist. Für die Konfiguration im obigen Diagramm (Proxy-to-Proxy-Aufruf mit Proxy-Verkettung) würden Sie festlegen, dass ProxyB (/proxyB) ein lokaler Zielendpunkt von ProxyA (/proxyA) ist. Dies führt dazu, dass unter ProxyA eingehende Anfragen an ProxyB weitergeleitet werden.
Es gibt zwei Möglichkeiten, eine lokale Verbindung zwischen Proxys herzustellen:
- Sie geben den Namen des Zielproxys und den Namen eines Proxy-Endpunkts an.
- 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 lediglich der Verbraucher des Zielproxys ist – beispielsweise wenn Sie nicht beide entwickeln – ist der Pfad möglicherweise die zuverlässigste Art der Verbindung. 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>
Das <Path>
-Element unter <LocalTargetConnection>
kann ein String sein. Sie können auch eine Nachrichtenvorlage verwenden, um einen Wert dynamisch zuzuweisen.
Proxys über die Apigee-Benutzeroberfläche verbinden
Sie können Proxys entweder mithilfe des Proxynamens oder des Pfads über die Apigee-Benutzeroberfläche verbinden. Im folgenden Beispiel gibt es zwei Proxys, ProxyA und ProxyB, und Sie möchten ProxyB als Zielendpunkt von ProxyA festlegen. So verbinden Sie die Proxys anhand des Proxynamens:
- Melden Sie sich bei der Apigee-UI an.
- Wählen Sie im linken Bereich Entwickeln > Proxys aus.
- Wählen Sie in der Liste der Proxys ProxyA aus.
- Klicken Sie auf den Tab Entwickeln.
- Ersetzen Sie im Bereich Code den Abschnitt
<TargetEndpoint>
der XML-Datei durch Folgendes:<TargetEndpoint> <LocalTargetConnection> <APIProxy>ProxyB</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection> </TargetEndpoint>
- Klicken Sie auf Speichern.
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 mit Verkettung 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.