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. Sebbene sia come un proxy, un flusso condiviso non ha endpoint. Può essere utilizzato solo da un proxy API o da un flusso condiviso nello stesso organizzazione come flusso condiviso stesso.

Acquisendo in un'unica posizione funzionalità utili in più luoghi, un flusso condiviso aiuta garantire 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 riferimento al criterio FlowCallout, consulta le norme relative ai callout Flussi. Per ulteriori informazioni su hook di flusso, consulta Collegare un flusso condiviso usando un hook di flusso.

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

  • Sicurezza, con codice di autorizzazione che utilizza la verifica delle chiavi API e OAuth, nonché e il codice di protezione dalle minacce.
  • Logging, per generare messaggi di errore standard.
  • Mediazione, per la trasformazione tra formati di 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. Il deployment di AuthSharedFlow è stato eseguito separatamente all'organizzazione prima dei proxy, in modo che siano disponibili per supportare le richieste provenienti 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 sviluppano 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 relativi ai callout di flusso 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 generali per sviluppare un flusso condiviso:

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

    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 norme e risorse di supporto, proprio come faresti durante 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>

    Quindi, a un flusso condiviso per la gestione del traffico, puoi collegare il criterio Spike Arrest 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 Creazione di un flusso condiviso nella UI di Apigee.

    Come per i proxy API, puoi importare un file ZIP contenente l'origine del flusso condivisa 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 Impostare le variabili di ambiente per le richieste 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 consulta Informazioni sul deployment panoramica.)

    Un flusso condiviso deve trovarsi nella stessa organizzazione ed essere sottoposto a deployment nello stesso ambiente dell'API proxy e altri flussi condivisi che la utilizzano. Deployment del flusso condiviso prima dei proxy permette di risolvere la dipendenza del proxy dal flusso condiviso al momento del deployment.

    Puoi eseguire il deployment di un flusso condiviso con una chiamata 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"

    Analogamente ai proxy API, tutti i deployment di flussi condivisi riusciti su Apigee i deployment senza tempi di inattività.

  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 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 le norme sui callout di servizio, con cui richiami un altro servizio, FlowCallout chiama al 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 ulteriori informazioni, consulta Chiamata a un flusso condiviso da un proxy API o 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 mediante il tracciamento, come faresti con un proxy API.

    Come con un proxy API, sviluppi un flusso condiviso richiamando e tracciando in modo iterativo fino la logica che vuoi tu. In questo caso, poiché il flusso condiviso non viene eseguito si richiama un endpoint proxy ed esegue il debug del proxy.

    Procedi nel seguente modo:

    1. Assicurati che sia il flusso condiviso sia il proxy API che lo chiama con un FlowCallout si trovano nella stessa organizzazione e ne viene eseguito il deployment 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 includi il criterio FlowCallout che richiama il flusso condiviso.
    4. Nella scheda Trace, esamina il flusso dal proxy API a quello condiviso.

      Tieni presente che nel tracciamento, 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 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 con cui i proxy API e altri flussi condivisi per fare riferimento a questo flusso condiviso. Il nome deve essere descrittivo per gli sviluppatori durante 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. In seguito, puoi sviluppare le funzionalità del flusso condiviso ed eseguirne il deployment dell'ambiente desiderato.
    • Fai clic su Carica bundle per creare un flusso condiviso da origini esistenti caricando un bundle di flussi.

      Un bundle di flusso condiviso contiene gli artefatti di origine di un flusso condiviso. Ad esempio: se scaricassi un flusso condiviso dalla UI di Apigee, avresti avuto un file ZIP con il bundle di 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. In seguito, puoi sviluppare le funzionalità del flusso condiviso ed eseguirne il deployment dell'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 Norme relative ai callout di flusso.

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

Vedi anche

Concatenamento di proxy API