Flux partagés réutilisables

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Vous pouvez associer des règles et des ressources dans un flux partagé pouvant être utilisé à partir de plusieurs proxys d'API, voire même d'autres flux partagés. Bien qu'il soit comparable à un proxy, un flux partagé ne possède pas de point de terminaison. Il ne peut être utilisé que depuis un proxy d'API ou un flux partagé appartenant à la même organisation que le flux partagé lui-même.

En centralisant une fonctionnalité utile à plusieurs emplacements, un flux partagé vous aide à assurer la cohérence, à réduire le temps de développement et à gérer plus facilement le code.

La vidéo suivante montre comment créer et suivre un flux partagé dans l'interface utilisateur Edge.

La vidéo suivante de cinq minutes montre comment créer et tracer un flux partagé dans la version classique Interface utilisateur Edge (Edge pour Private Cloud uniquement)

Vous pouvez appeler un flux partagé à l'aide de la règle FlowAccroche. De plus, en associant un flux partagé à un hook de flux, vous pouvez faire en sorte que le flux partagé s'exécute avant une requête cible ou de proxy, ou après une réponse cible ou de proxy.

Pour en savoir plus sur la règle FlowAccroche, consultez la page Règle FlowCall. Pour obtenir plus d'informations sur les hooks de flux, consultez la page Associer un flux partagé à l'aide d'un hook de flux.

Par exemple, imaginons que vous disposiez de fonctionnalités exploitées à plusieurs emplacements ou devant être uniformisées dans l'ensemble des API de votre organisation. Vous pouvez créer un flux partagé pour chaque catégorie, y compris les suivantes :

  • La sécurité, avec le code d'autorisation utilisant l'authentification OAuth et la vérification des clés API, ainsi qu'un code de protection contre les menaces.
  • La journalisation pour générer des messages d'erreur standards.
  • La médiation pour convertir des messages XML au format JSON, et inversement.

Dans l'illustration suivante, deux proxys d'API font appel à un flux partagé (avec une règle FlowCallout) pour authentifier les requêtes entrantes des utilisateurs. Le flux AuthSharedFlow a été déployé séparément dans l'organisation avant les proxys. Il peut ainsi traiter leurs requêtes. Un flux partagé peut être développé et géré par une équipe chargée des règles générales de l'entreprise, puis utilisé dans des proxys par des équipes sectorielles créant des applications plus spécialisées.

Développer un flux partagé

Lorsque vous développez un flux partagé, vous devez toujours le tester en envoyant des appels à un proxy d'API. En d'autres termes, vous ne pouvez pas envoyer directement des requêtes à un flux partagé, comme vous le feriez avec un proxy d'API. À la place, vous envoyez des requêtes à un proxy d'API, qui lui-même appelle le flux partagé.

Voici les grandes étapes à suivre pour développer un flux partagé :

  1. Déterminez l'ensemble de fonctionnalités partagé.

    Par exemple, vous pouvez associer des fonctionnalités de gestion du trafic, y compris la suppression des pics de trafic. De cette façon, vous pouvez gérer leur configuration en dehors du workflow de celles qui mettent en œuvre une logique sectorielle.

  2. Développez un flux partagé en définissant des règles et des ressources complémentaires, comme vous le feriez lors du développement d'un proxy d'API.

    Un flux partagé est une séquence d'étapes conditionnelles. Le développement d'un flux partagé ressemble donc à celui d'un proxy d'API. Vous pouvez ajouter des règles et des ressources que vous pouvez inclure dans un proxy.

    Par exemple, pour assurer la compatibilité avec la gestion du trafic, vous pouvez appliquer une règle Spike Arrest pour n'autoriser que 30 requêtes par seconde, comme dans l'exemple suivant :

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

    Vous pouvez ensuite associer la règle Spike Arrest comme étape dans un flux partagé pour la gestion du trafic. La règle s'exécute pour tout proxy d'API qui appelle le flux partagé.

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

    Pour savoir comment lancer un flux partagé dans la console de gestion, consultez Création d'un flux partagé dans l'interface utilisateur Edge.

    Comme avec les proxys d'API, vous pouvez importer un fichier ZIP contenant les artefacts sources du flux partagé. Pour en savoir plus sur l'importation des proxys, consultez la section Importer un nouveau proxy d'API. Vous trouverez ci-dessous la procédure à suivre pour importer flux partagé avec l'API de gestion:

    curl -X POST -F "file=@/path/to/zip/file.zip" \ 'https://api.enterprise.apigee.com/v1/o/{org_name}/sharedflows?action=import&name=shared-flow-name' \
    -u email:password
    
  3. Déployez le flux partagé dans l'environnement avant de déployer des proxys ou des flux partagés qui l'utiliseront. Vous déployez un flux partagé de la même manière qu'un proxy d'API. (Pour en savoir plus, consultez la section Présentation du déploiement.)

    Un flux partagé doit appartenir à la même organisation et être déployé dans le même environnement que les proxys d'API et les autres flux partagés qui l'utilisent. Le déploiement du flux partagé avant les proxys permet de s'affranchir de la dépendance du proxy sur le flux partagé au moment du déploiement.

    Vous pouvez déployer un flux partagé avec un appel d'API de gestion comme celui-ci:

    curl -X POST --header "Content-Type: application/octet-stream" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments \
    -u email:password
    

    Vous pouvez également remplacer un flux partagé actuellement déployé sans temps d'arrêt. (Cette opération est très semblable pour les proxys d'API. Voir Déployer des proxys d'API à l'aide de l'API de gestion. Voici le formulaire de demande créé à l'aide de l'API de gestion:

    curl -X POST --header "Content-Type:application/x-www-form-urlencoded" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments?"override=true" \
    -u email:password
    
  4. Développez le proxy d'API consommateur afin qu'il puisse appeler le flux partagé dans le cadre de son propre flux.

    Dans un proxy d'API, vous appelez un flux partagé avec une règle FlowCallout. (Vous pouvez également associer le flux partagé au proxy à l'aide d'un hook de flux, comme décrit sur la page Associer un flux partagé à l'aide d'un hook de flux.) Pour suivre un tutoriel d'introduction sur la création d'un proxy d'API, consultez la section Créer votre premier proxy d'API.

    Pour utiliser un flux partagé, vous ajoutez une règle FlowCallout au proxy ou au flux partagé qui l'utiliseront. Comme pour une règle d'appel de service, avec laquelle vous appelez un autre service, FlowAccroche appelle le flux partagé. Le proxy d'API consommateur doit être déployé après le flux partagé et dans le même environnement que celui-ci. La Un flux partagé doit être mis en place lorsque vous souhaitez tester un appel à celui-ci à l'aide de la règle FlowAccroche.

    Dans le code suivant, une règle FlowCallout fait appel à un flux partagé appelé 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>
    

    Pour en savoir plus, consultez la section Appeler un flux partagé à partir d'un proxy d'API ou d'un flux partagé.

  5. Déployez le proxy d'API consommateur pour commencer à utiliser le flux partagé. Pour en savoir plus sur le déploiement en général, consultez la page Comprendre le déploiement.
  6. Procédez au développement de manière itérative par traçage, comme avec un proxy d'API.

    Comme avec un proxy d'API, vous développez un flux partagé en appelant et en effectuant le suivi de manière itérative jusqu'à obtenir la logique qui vous convient. Dans ce cas, comme le flux partagé ne s'exécute pas de lui-même, vous appelez un point de terminaison du proxy et identifiez le proxy.

    Procédez comme suit :

    1. Assurez-vous que le flux partagé et le proxy d'API l'appellent avec un FlowCallout dans la même organisation et déployées dans le même environnement.
    2. Dans l'onglet Trace du proxy d'API, commencez à suivre la trace du proxy d'API.
    3. Envoyez une requête à un point de terminaison du proxy dans le proxy d'API. Le flux en provenance du point de terminaison inclure la règle FlowCallout qui fait appel au flux partagé.
    4. Dans l'onglet Trace, examinez le flux entre le proxy d'API et le flux partagé.

      Notez que dans le cadre du traçage, le flux partagé est représenté sous la forme d'un ensemble d'étapes ou de règles entouré d'une zone grise. Les icônes représentant les règles FlowCallout précèdent les flux partagés. (Pour en savoir plus sur le traçage, consultez la page Utiliser l'outil Trace.)

Création d'un flux partagé dans l'interface utilisateur Edge

Lorsque vous utilisez l'interface utilisateur d'Apigee Edge pour créer un flux partagé, vous pouvez en créer un à partir de ou en important des sources de flux existantes en tant que fichier ZIP de bundle de flux.

  1. Accédez à la page "Flux partagés", comme décrit ci-dessous. Sur la page "Flux partagés", vous pouvez afficher une liste des flux partagés de l'organisation, ainsi que modifier ou supprimer des flux dans la liste.

    Edge

    Pour accéder à la page des flux partagés à l'aide de l'interface utilisateur Edge:

    1. Connectez-vous à apigee.com/edge.
    2. Sélectionnez l'organisation contenant votre flux partagé. Consultez la page Basculer entre les organisations.

      Le flux partagé sera disponible pour tous les proxys d'API et les flux partagés déployés dans un environnement à partir de cette organisation. Il ne sera pas disponible en dehors de cette organisation.

    3. Dans la barre de navigation de gauche, cliquez sur Développer > Flux partagés.

    Classic Edge (cloud privé)

    Pour accéder à la page des flux partagés à l'aide de l'interface utilisateur Classic Edge:

    1. Connectez-vous à http://ms-ip:9000, où ms-ip est le Adresse IP ou nom DNS du nœud du serveur de gestion.
    2. Sélectionnez l'organisation contenant votre flux partagé. Consultez la page Basculer entre les organisations.

      Le flux partagé sera disponible pour tous les proxys d'API et les flux partagés déployés dans un environnement à partir de cette organisation. Il ne sera pas disponible en dehors de cette organisation.

    3. Sélectionnez API > Flux partagés dans la barre de navigation supérieure.
  2. Cliquez sur le bouton + Flux partagé pour commencer à ajouter un flux partagé.
  3. Sur la page Créer un flux partagé, choisissez la manière dont vous souhaitez créer le flux: <ph type="x-smartling-placeholder">
      </ph>
    • Créez un flux de toutes pièces. Vous pouvez configurer des règles et des ressources en tant qu'étapes du flux.
      1. Sélectionnez Empty Shared Flow (Flux partagé vide).
      2. Saisissez un nom. Il s'agit du nom que les proxys d'API et d'autres flux partagés utilisent pour faire référence à ce flux partagé. Le nom doit être descriptif pour les développeurs qui utilisent le flux.
      3. Saisissez une description pour fournir davantage d'informations sur le flux.
      4. Cliquez sur Suivant.
      5. (Facultatif) Sélectionnez les environnements dans lesquels vous souhaitez déployer le nouveau flux.

        Par exemple, si vous testez le flux partagé à partir de proxys d'API déployés dans l'environnement de test, déployez-le dans test.

      6. Cliquez sur Build and Deploy (Créer et déployer) pour créer et déployer le nouveau flux partagé dans le ou les environnements sélectionnés. Si vous n'avez sélectionné aucun environnement, le flux partagé est créé, mais n'est pas déployé.

    • Créez un flux partagé à partir de sources existantes en important un groupe de flux.
      1. Sélectionnez Shared Flow Bundle (Groupe de flux partagés) pour spécifier un fichier ZIP contenant les artefacts à inclure dans le nouveau flux.

        Un groupe de flux partagés contient les artefacts sources d'un flux partagé. Par exemple : si vous deviez télécharger un flux partagé à partir de l'interface utilisateur Edge, vous auriez un fichier .zip contenant le bundle de flux.

      2. Cliquez sur Suivant.
      3. Cliquez sur Sélectionner un fichier pour rechercher le fichier ZIP contenant les sources de flux partagés à importer.
      4. Dans la zone Shared Flow Name (Nom du flux partagé), attribuez un nom au flux importé. Il s'agit du nom que les proxys d'API et d'autres flux partagés utilisent pour faire référence à ce flux partagé. Le nom doit être descriptif pour les développeurs qui utilisent le flux.
      5. Cliquez sur Suivant.
      6. Cliquez sur Créer pour créer le flux à partir des sources que vous importez.

Appeler un flux partagé à partir d'un proxy d'API ou d'un flux partagé

Vous pouvez appeler un flux partagé à partir d'un proxy ou d'un autre flux partagé à l'aide de la règle FlowCallout.

<ph type="x-smartling-placeholder">
  1. Dans l'interface utilisateur Edge, localisez le proxy ou le flux partagé à partir duquel vous souhaitez pour appeler un autre flux partagé.
  2. Dans le navigateur situé à côté de Règles, cliquez sur le bouton +.
  3. Dans la liste des règles, cliquez sur FlowCallout sous Extension.
  4. Saisissez le nom à afficher et le nom (identifiant unique), puis sélectionnez le flux partagé que cette règle appelle.
  5. Cliquez sur Ajouter.
  6. Ajoutez la nouvelle règle FlowAccroche au proxy sur lequel vous souhaitez effectuer l'appel.

Voir aussi

<ph type="x-smartling-placeholder"></ph> Chaînage de proxys d'API