Concatenamento di proxy API

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

È possibile specificare che un proxy è l'endpoint di destinazione di un altro, connettendo in modo efficace due proxy in una catena di proxy. Concatenare i proxy in questo modo può aiutarti a evitare un hop di rete. quindi migliora il rendimento complessivo.

di Gemini Advanced.

Con il concatenamento dei proxy specifichi che un proxy è l'endpoint di destinazione locale dell'altro. Anziché utilizzare l'elemento HTTPTargetConnection per effettuare una chiamata al secondo proxy, utilizzi l'elemento LocalTargetConnection.

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

Il concatenamento dei proxy potrebbe essere utile quando hai un proxy che offre alcune informazioni discrete di basso livello le funzionalità utilizzate da altri proxy. Ad esempio, un proxy che espone le operazioni di creazione/lettura/aggiornamento/eliminazione con un datastore di backend potrebbero essere il proxy di destinazione più altri proxy che espongono i dati ai client.

Video: guarda un breve video per scoprire di più sul concatenamento dei proxy API.

Come funziona il concatenamento dei proxy

Il concatenamento del proxy utilizza una connessione locale per ridurre al minimo l'overhead di rete quando si chiama un proxy da un'altra. Questa connessione locale è più efficiente perché bypassa funzionalità di rete quali come bilanciatori del carico, router e processori di messaggi.

Di seguito viene illustrata la differenza tra la connessione dei proxy mediante HTTPTargetConnection e LocalTargetConnection (catenamento proxy):

Puoi connettere i proxy specificando che uno è un endpoint di destinazione locale dell'altro. Puoi crea una connessione locale tra i proxy in due modi:

  • Specificando il nome del proxy di destinazione e un nome ProxyEndpoint
  • Specificando un percorso all'endpoint proxy di destinazione

Puoi connettere i proxy di destinazione all'interno di una configurazione TargetEndpoint, utilizzando un LocalTargetConnection, come descritto di seguito.

Connessione dei proxy per nome proxy

Puoi specificare il proxy di destinazione per nome. Questo è particolarmente utile quando creando la connessione fin dall'inizio e sviluppando insieme i proxy. Se non conosci (o il nome potrebbe cambiare), valuta la possibilità di connetterti con il percorso dell'endpoint del proxy di destinazione, descritti di seguito.

Quando ti connetti a un proxy di destinazione per nome, specifichi il nome del proxy e il nome del suo ProxyEndpoint.

L'esempio seguente specifica un proxy di destinazione denominato data-manager, insieme a il nome ProxyEndpoint esposto da data-manager. Come riferimento consulta la documentazione di riferimento sulla configurazione dei proxy API.

<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>

Connessione dei proxy per percorso

Puoi specificare il proxy di destinazione in base al percorso endpoint. Potresti voler procedere in questo modo quando non conosci il nome del proxy o quando potrebbe cambiare.

Se il tuo proxy è semplicemente il consumer del proxy di destinazione, ad esempio quando non stai sviluppando in entrambi i casi: il percorso potrebbe essere il modo più affidabile per entrare in contatto. Ad esempio, se il proxy che stai utilizzando che viene sviluppato e gestito da un altro team, può essere utile usare un percorso endpoint affidabile.

L'esempio seguente specifica un proxy di destinazione in /v1/streetcarts/foodcarts/data-manager, dove si presume che l'host sia identico a il proxy corrente. Per informazioni di riferimento, consulta Informazioni di riferimento sulla configurazione del proxy API.

<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>

Connessione dei proxy alla gestione console

Puoi creare connessioni con concatenamento dei proxy utilizzando la console di gestione perimetrale.

  1. Apri il proxy che utilizzerà il proxy di destinazione.
  2. Nel Navigatore, fai clic sul segno più accanto a Endpoint di destinazione.
  3. Nella finestra di dialogo Nuovo endpoint di destinazione, inserisci il nome dell'endpoint di destinazione.
  4. Sotto la casella Nome endpoint di destinazione, seleziona una delle seguenti opzioni:
      .
    • Concatenamento del proxy per effettuare una selezione da un elenco di proxy già presenti nell'organizzazione e completamente gestito di Google Cloud.
      1. Nel menu a discesa Nome proxy, seleziona il proxy di destinazione.
      2. Nella casella Endpoint proxy, inserisci il percorso dell'endpoint proxy di destinazione connettersi.
    • Sequenza di percorsi per inserire il percorso di base del proxy di destinazione, ad esempio /mypath/myproxy/myendpoint.
  5. Fai clic su Aggiungi.

Proxy concatenati, prodotti API e sicurezza

Il concatenamento dei proxy è ideale nei casi in cui entrambi i proxy si trovano nello stesso prodotto API. Per impostazione predefinita, entrambi disponibili per i clienti. Apigee attualmente non supporta il raggruppamento del secondo proxy in un un prodotto API separato a cui i client non devono avere accesso.

Se il secondo proxy deve essere protetto dalle richieste dirette del client, ti consigliamo di aggiungere una logica alla in modo che il secondo proxy esamini l'indirizzo IP del client. Nel caso di una chiamata effettuata tramite concatenato, l'indirizzo IP sarà locale. Il tuo codice può verificare che sia locale prima di consentire in fase di elaborazione per continuare. Vedi il criterio di controllo dell'accesso per un per farlo.