Concatenamento di proxy API

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Puoi specificare che un proxy è l'endpoint di destinazione di un altro, connettendo di fatto i due proxy in una catena di proxy. Concatenare i proxy in questo modo può aiutarti a evitare un hop di rete e quindi a migliorare le prestazioni complessive.

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

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

Potrebbe essere utile il concatenamento di proxy se hai un proxy che offre funzionalità discrete di basso livello che verranno utilizzate da altri proxy. Ad esempio, un proxy che espone operazioni di creazione/lettura/aggiornamento/eliminazione con un datastore di backend potrebbe essere il proxy di destinazione per diversi 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 di proxy

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

Di seguito viene illustrata la differenza tra la connessione dei proxy tramite HTTPTargetConnection e LocalTargetConnection (concatenamento di proxy):

Per connettere i proxy devi specificare che uno è un endpoint di destinazione locale dell'altro. Puoi creare una connessione locale tra proxy in due modi:

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

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

Connessione dei proxy per nome proxy

Puoi specificare il proxy di destinazione per nome. Potrebbe essere utile soprattutto quando crei la connessione fin dall'inizio e sviluppi i proxy insieme. Se non ne conosci il nome (o il nome potrebbe cambiare), valuta la possibilità di connetterti al percorso dell'endpoint del proxy di destinazione, come descritto 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 al nome ProxyEndpoint esposto da data-manager. Per informazioni di riferimento, consulta la sezione Riferimento per la configurazione del 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 tramite il relativo percorso dell'endpoint. È consigliabile utilizzare questo metodo quando non conosci il nome del proxy o quando il nome potrebbe cambiare.

Se il proxy è semplicemente il consumer del proxy di destinazione, ad esempio quando non li stai sviluppando entrambi, il percorso potrebbe essere il modo più affidabile per connettersi. Ad esempio, se il proxy a cui ti stai collegando è sviluppato e gestito da un altro team, potrebbe essere opportuno utilizzare 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 lo stesso del proxy corrente. Per informazioni di riferimento, consulta la sezione Riferimento per la 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 console di gestione

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

  1. Apri il proxy che utilizzerà il proxy di destinazione.
  2. Nel menu di navigazione, 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:
    • Concatenazione proxy per scegliere da un elenco di proxy già presenti nell'organizzazione e nell'ambiente.
      1. Nel menu a discesa Nome proxy, seleziona il proxy di destinazione.
      2. Nella casella Endpoint proxy, inserisci il percorso dell'endpoint del proxy di destinazione a cui vuoi connetterti.
    • Concatenazione 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 sono disponibili per i client. Al momento Apigee non supporta il raggruppamento del secondo proxy in un prodotto API separato a cui i client non dovrebbero avere accesso.

Se il secondo proxy deve essere protetto contro le richieste del client diretto, valuta la possibilità di aggiungere logica per fare in modo che il secondo proxy esamini l'indirizzo IP del client. Nel caso di una chiamata effettuata tramite concatenamento, l'indirizzo IP sarà locale. Il tuo codice può confermare che sia locale prima di consentire il proseguimento dell'elaborazione. Per scoprire un modo per farlo, vedi il criterio di controllo dell'accesso.