Creazione di flussi condivisi riutilizzabili

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Combina criteri e risorse in un flusso condiviso che puoi utilizzare da più proxy API e persino da altri flussi condivisi. Anche se è simile a un proxy, un flusso condiviso non ha endpoint. Può essere utilizzato solo da un proxy API o da un flusso condiviso che si trovi nella stessa organizzazione del flusso condiviso stesso.

Raccogliendo in un unico posto funzionalità utili in più posizioni, un flusso condiviso ti aiuta a garantire la coerenza, ridurre i tempi di sviluppo e gestire più facilmente il codice.

Il seguente video mostra come creare e eseguire il debug di un flusso condiviso nell'interfaccia utente di Apigee.

Puoi chiamare un flusso condiviso utilizzando il criterio FlowCallout. Inoltre, collegando un flusso condiviso a un hook di flusso, puoi eseguire il flusso condiviso prima di una richiesta di proxy o target o dopo una risposta di proxy o target.

Per informazioni di riferimento sulle norme relative a FlowCallout, consulta le norme relative a FlowCallout. Per saperne di più sugli hook di flusso, consulta Collegare un flusso condiviso utilizzando un hook di flusso.

Ad esempio, immagina di avere aree di funzionalità utilizzate in più punti o che devono essere standardizzate nelle API della tua organizzazione. Potresti avere un flusso condiviso per ogni categoria, tra cui:

  • Sicurezza, con il codice di autorizzazione che utilizza la verifica OAuth e della chiave API, nonché il codice di protezione dalle minacce.
  • Logging, per la generazione di messaggi di errore standard.
  • Mediazione, per la trasformazione tra i formati dei messaggi XML e JSON.

Nella seguente illustrazione, due proxy API eseguono una chiamata (con un criterio FlowCallout) a un flusso condiviso per autenticare le richieste degli utenti in arrivo. AuthSharedFlow è stato disegnato separatamente per l'organizzazione prima dei proxy in modo che sia disponibile per supportare le richieste provenienti dai proxy. Un flusso condiviso può essere sviluppato e gestito da un team responsabile di criteri generali dell'azienda, quindi utilizzato in proxy dai team di business line che creano app più specializzate.

Diagramma di flusso che mostra il criterio POST /foodcarts al criterio POST /menus ad AuthSharedFlow.
          Testo del callout:
          a) Più proxy API utilizzano il flusso condiviso tramite FlowCallout.
          b) I criteri FlowCallout effettuano chiamate dai proxy API al flusso condiviso.
          c) Il bundle di flussi condivisi contiene logica riutilizzabile come criteri e risorse.

Sviluppo di un flusso condiviso

Quando sviluppi un flusso condiviso, devi sempre testarlo con chiamate inviate a un proxy API. In altre parole, non puoi inviare richieste direttamente a un flusso condiviso come faresti con un proxy API. Invia invece le richieste a un proxy API che, a sua volta, chiama il flusso condiviso.

Ecco i passaggi di alto livello per sviluppare un flusso condiviso:

  1. Scopri quale dovrebbe essere l'insieme di funzionalità condivise.

    Ad esempio, potresti voler combinare le funzionalità di gestione del traffico, inclusa la soppressione dei picchi di traffico. In questo modo, puoi gestire la loro configurazione al di fuori del flusso di lavoro di coloro che implementano la logica di business.

  2. Sviluppa un flusso condiviso implementando criteri e risorse di supporto, come faresti per lo sviluppo di un proxy API.

    Un flusso condiviso è una sequenza di passaggi condizionali. Pertanto, svilupparne uno è come sviluppare un proxy API. Puoi includere criteri e risorse che potresti includere in un proxy.

    Ad esempio, nell'ambito del supporto per la gestione del traffico, potresti implementare un criterio di interruzione per picchi per consentire solo 30 richieste al secondo, come nell'esempio seguente:

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>

    Poi, a un flusso condiviso per la gestione del traffico, puoi allegare il criterio Arresta picchi come un passaggio. Il criterio verrà eseguito per qualsiasi proxy API che chiama il flusso condiviso.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>

    Per informazioni su come avviare un flusso condiviso nella console di gestione, consulta Creare un flusso condiviso nell'interfaccia utente di Apigee.

    Come per i proxy API, puoi importare un file ZIP contenente gli elementi di origine del flusso condiviso utilizzando l'API Create shared flow. Di seguito viene illustrato come importare un flusso condiviso con l'API Apigee:

    curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&sharedFlowID=mySharedFlow" \
      -X POST \
      -F "file=@sharedflow.zip" \
      -H "Authorization: Bearer $TOKEN"

    dove $TOKEN è impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste dell'API Apigee.

  3. Esegui il deployment del flusso condiviso nell'ambiente prima di eseguire il deployment di proxy o flussi condivisi che lo utilizzeranno. Esegui il deployment di un flusso condiviso nello stesso modo in cui esegui il deployment di un proxy API. Per ulteriori informazioni, consulta la Panoramica dell'implementazione.

    Un flusso condiviso deve trovarsi nella stessa organizzazione e essere implementato nello stesso ambiente dei proxy API e di altri flussi condivisi che lo utilizzano. Il deployment del flusso condiviso prima dei proxy consente di risolvere la dipendenza del proxy dal flusso condiviso al momento del deployment.

    Puoi eseguire il deployment di un flusso condiviso con una chiamata all'API Apigee come la seguente:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/sharedflows/$SHAREDFLOW/revisions/$REV/deployments \
      -X POST \
      -H "Authorization: Bearer $TOKEN"

    Come per i proxy API, tutti i deployment di flussi condivisi riusciti in Apigee sono deployment senza tempi di riposo.

  4. Sviluppa il proxy API di consumo in modo che possa chiamare il flusso condiviso all'interno del proprio flusso.

    Da un proxy API, chiami un flusso condiviso con un criterio FlowCallout. Puoi anche collegare il flusso condiviso al proxy utilizzando un hook di flusso.

    Per utilizzare un flusso condiviso, aggiungi un criterio FlowCallout al proxy o al flusso condiviso che lo utilizzerà. Come un criterio di callout del servizio, con il quale chiami un altro servizio, un FlowCallout chiama il flusso condiviso. Il proxy API di consumo deve essere disegnato dopo il flusso condiviso e nello stesso ambiente del flusso condiviso. Il flusso condiviso deve essere implementato quando vuoi testare una chiamata utilizzando il criterio FlowCallout.

    Nel codice seguente, un criterio FlowCallout richiama un flusso condiviso chiamato traffic-management-shared.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>

    Per saperne di più, consulta Chiamata di un flusso condiviso da un proxy API o da un flusso condiviso

  5. Esegui il deployment del proxy API di consumo per iniziare a utilizzare il flusso condiviso. Per saperne di più sul deployment in generale, consulta la Panoramica del deployment.
  6. Sviluppa in modo iterativo tramite il monitoraggio, come faresti con un proxy API.

    Come per un proxy API, sviluppi un flusso condiviso richiamando e tracciando in modo iterativo fino a quando non hai la logica che preferisci. In questo caso, poiché il flusso condiviso non viene eseguito autonomamente, devi richiamare un endpoint proxy e eseguire il debug del proxy.

    Procedi nel seguente modo:

    1. Assicurati che sia il flusso condiviso sia il proxy API che lo chiama con un criterio FlowCallout si trovino nella stessa organizzazione e siano dipiazzati nello stesso ambiente.
    2. Nella scheda Trace del proxy API, inizia a eseguire il tracciamento del proxy API.
    3. Invia una richiesta a un endpoint proxy nel proxy API. Il flusso dall'endpoint deve includere il criterio FlowCallout che richiama il flusso condiviso.
    4. Nella scheda Traccia, esamina il flusso dal proxy API al flusso condiviso.

      Tieni presente che nel monitoraggio, il flusso condiviso è rappresentato come un insieme di passaggi o criteri racchiusi in un riquadro grigio. Le icone che rappresentano i criteri FlowCallout precedono i flussi condivisi. Per saperne di più sul monitoraggio, consulta lo strumento di debug.

      Mappa delle transazioni.  Testo del callout:
            a) Il criterio FlowCallout richiama il flusso condiviso.
            b) Il flusso condiviso include un criterio SpikeArrest e un criterio FlowCallout.
            Il criterio FlowCallout richiama un altro flusso condiviso con un criterio VerifyAPIKey.

Creazione di un flusso condiviso nell'interfaccia utente di Apigee

Quando utilizzi l'API Apigee per creare un flusso condiviso, puoi crearne uno da zero o importare le origini flusso esistenti come file ZIP del bundle del flusso.

Accedi alla pagina Fluidi condivisi, come descritto di seguito. Nella pagina Fluidi condivisi, puoi visualizzare un elenco dei flussi condivisi nell'organizzazione e modificarli o eliminarli.

Per creare un flusso condiviso nell'interfaccia utente di Apigee:

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona l'organizzazione contenente il flusso condiviso. Consulta Passare da un'organizzazione all'altra.

    Il flusso condiviso sarà disponibile per tutti i proxy API e i flussi condivisi di cui è stato eseguito il deployment in un ambiente di questa organizzazione. Non sarà disponibile dall'esterno di questa organizzazione.

  3. Seleziona Sviluppa > Flussi condivisi nella barra di navigazione a sinistra.
  4. Crea o carica un flusso condiviso:
    • Fai clic su Crea nuovo per creare un nuovo flusso da zero. Potrai configurare criteri e risorse come passaggi del flusso.

      Viene visualizzata la finestra di dialogo Crea un flusso condiviso.

      1. Inserisci il nome del flusso condiviso.

        Questo sarà il nome utilizzato dai proxy API e da altri flussi condivisi per fare riferimento a questo flusso condiviso. Il nome deve essere descrittivo per gli sviluppatori che utilizzano il flusso.

      2. Inserisci una descrizione per fornire ulteriori informazioni sulle funzionalità del flusso.
      3. Fai clic su Crea.

        Il flusso condiviso viene creato.

      4. Successivamente, puoi sviluppare le funzionalità del flusso condiviso ed eseguirne il deployment nell'ambiente desiderato.
    • Fai clic su Carica bundle per creare un flusso condiviso da origini esistenti caricando un bundle di flussi.

      Un bundle di flussi condivisi contiene gli elementi di origine di un flusso condiviso. Ad esempio, se scarichi un flusso condiviso dall'interfaccia utente di Apigee, avrai un file zip con il bundle del flusso.

      Viene visualizzata la finestra di dialogo Crea un flusso condiviso.

      1. Seleziona il file ZIP contenente gli elementi che vuoi includere nel nuovo flusso.
      2. Fai clic su Apri.
      3. Inserisci un nome per il flusso condiviso importato.

        Questo sarà il nome utilizzato dai proxy API e da altri flussi condivisi per fare riferimento a questo flusso condiviso. Il nome deve essere descrittivo per gli sviluppatori che utilizzano il flusso.

      4. Fai clic su Crea.

        Il flusso condiviso viene creato dal bundle.

      5. Successivamente, puoi sviluppare le funzionalità del flusso condiviso ed eseguirne il deployment nell'ambiente desiderato.

Chiamare un flusso condiviso da un proxy API o da un flusso condiviso

Puoi chiamare un flusso condiviso da un proxy o da un altro flusso condiviso utilizzando il criterio FlowCallout.

  1. Nell'interfaccia utente di Apigee, apri il proxy API o il flusso condiviso da cui vuoi chiamare il flusso condiviso.
  2. Fai clic sulla scheda Sviluppa.
  3. Nel Navigator, fai clic su + accanto a Criteri.
  4. Nell'elenco delle norme, fai clic su FlowCallout in Estensione.
  5. Inserisci il nome visualizzato e il nome (identificatore univoco), quindi seleziona il flusso condiviso che verrà chiamato da questo criterio.
  6. Fai clic su Aggiungi.
  7. Aggiungi il nuovo criterio FlowCallout al proxy in cui vuoi che venga effettuata la chiamata.

Vedi anche

Concatenamento di proxy API