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 anche 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 che si trova nella stessa organizzazione del flusso condiviso stesso.

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

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

Puoi chiamare un flusso condiviso utilizzando le norme di FlowCallout. Inoltre, collegando un flusso condiviso a un hook del flusso, puoi fare in modo che il flusso condiviso venga eseguito prima di una richiesta di proxy o di destinazione oppure dopo un proxy o una risposta di destinazione.

Per informazioni sulle norme FlowCallout, consulta le norme di 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ù luoghi o che devono essere standardizzate per le 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é codice di protezione dalle minacce.
  • Logging per generare messaggi di errore standard.
  • Mediazione, per la trasformazione tra i formati di messaggi XML e JSON.

Nella figura seguente, due proxy API effettuano chiamate (con un criterio FlowCallout) a un flusso condiviso per autenticare le richieste degli utenti in entrata. È stato eseguito il deployment di AuthSharedFlow separatamente nell'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 ampi criteri aziendali, quindi utilizzato come proxy dai team line-of-business che creano app più specializzate.

Diagramma di flusso che mostra il criterio POST /foodcarts per POST /menus ad AuthSharedFlow.
          Testo del callout:
          a) Più proxy API utilizzano il flusso condiviso tramite FlowCallout.
          b) Le norme di FlowCallout effettuano chiamate da proxy API al flusso condiviso.
          c) Il bundle di flussi condiviso contiene una 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 con un proxy API. Vengono invece inviate richieste a un proxy API che, a sua volta, richiama il flusso condiviso.

Di seguito sono riportati i passaggi generali per sviluppare un flusso condiviso:

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

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

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

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

    Ad esempio, nell'ambito dell'assistenza per la gestione del traffico, potresti implementare un criterio di arresto dei 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 di Spike Arrest come passaggio. Il criterio viene 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 con i proxy API, puoi importare un file ZIP contenente gli artefatti dell'origine del flusso condiviso utilizzando l'API Crea flusso condiviso. 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 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 API Apigee.

  3. Esegui il deployment del flusso condiviso nell'ambiente prima di eseguire il deployment dei proxy o dei flussi condivisi che lo utilizzeranno. Il deployment di un flusso condiviso viene eseguito nello stesso modo in cui esegui il deployment di un proxy API. (Per saperne di più, consulta la panoramica del deployment.)

    Un flusso condiviso deve trovarsi nella stessa organizzazione ed essere sottoposto a deployment nello stesso ambiente dei proxy API e degli 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 API Apigee come segue:

    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 dei flussi condivisi riusciti in Apigee sono deployment senza tempi di inattività.

  4. Sviluppa il proxy API che utilizza in modo che possa chiamare il flusso condiviso come parte del proprio flusso.

    Da un proxy API, chiami un flusso condiviso con un criterio di 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à. Analogamente a un criterio relativo ai callout di servizio, con cui chiami un altro servizio, un FlowCallout richiama il flusso condiviso. Il deployment del proxy API in uso deve essere eseguito dopo il flusso condiviso e nello stesso ambiente del flusso condiviso. Il flusso condiviso deve essere attivo quando vuoi testare una chiamata utilizzando il criterio FlowCallout.

    Nel codice seguente, un criterio FlowCallout chiama un flusso condiviso denominato 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 a un flusso condiviso da un proxy API o da un flusso condiviso

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

    Come con un proxy API, sviluppi un flusso condiviso richiamando e tracciando in modo iterativo fino a ottenere la logica nel modo che preferisci. In questo caso, poiché il flusso condiviso non viene eseguito automaticamente, richiami un endpoint proxy ed esegui il debug del proxy.

    Segui questi passaggi:

    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 di cui è stato eseguito il deployment nello stesso ambiente.
    2. Nella scheda Traccia del proxy API, inizia a tracciare il 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 Trace, esamina il flusso dal proxy API al flusso condiviso.

      Tieni presente che, nel tracciamento, il flusso condiviso è rappresentato come un insieme di passaggi o criteri racchiusi in una casella grigia. Le icone che rappresentano i criteri FlowCallout precedono i flussi condivisi. Per ulteriori informazioni sul tracciamento, consulta 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 esegue una chiamata a un altro flusso condiviso con un criterio VerificationAPIKey.

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 importando le origini di flusso esistenti come file ZIP di un bundle di flusso.

Accedi alla pagina Flussi condivisi, come descritto di seguito. Nella pagina Flussi condivisi, puoi visualizzare un elenco dei flussi condivisi nell'organizzazione e modificare o eliminare i flussi nell'elenco.

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

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona l'organizzazione che include il flusso condiviso. Consulta Passaggio 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 da questa organizzazione. Non sarà disponibile all'esterno di questa organizzazione.

  3. Seleziona Sviluppo > 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 che i proxy API e altri flussi condivisi utilizzano 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 sulla funzione del flusso.
      3. Fai clic su Crea.

        Viene creato il flusso condiviso.

      4. Successivamente, potrai sviluppare le funzionalità di 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 flusso.

      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 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 artefatti che vuoi includere nel nuovo flusso.
      2. Fai clic su Apri.
      3. Inserisci un nome per il flusso condiviso importato.

        Questo sarà il nome che i proxy API e altri flussi condivisi utilizzano 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, potrai sviluppare le funzionalità di flusso condiviso ed eseguirne il deployment nell'ambiente desiderato.

Chiamata a 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 le norme di FlowCallout.

  1. Nella UI di Apigee, apri il proxy API o il flusso condiviso da cui vuoi chiamare il flusso condiviso.
  2. Fai clic sulla scheda Sviluppo.
  3. Nel barra di navigazione, accanto a Norme, fai clic su +.
  4. Nell'elenco delle norme, in Estensione, fai clic su FlowCallout.
  5. Inserisci il nome e il nome visualizzati (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 a cui vuoi effettuare la chiamata.

Vedi anche

Concatenamento di proxy API