Résoudre les erreurs d'exécution de la règle FlowCallout

Vous consultez la documentation Apigee Edge.
Accédez à la documentation sur Apigee X.
info

SharedFlowNotFound

Code d'erreur

flow.SharedFlowNotFound

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Causes possibles :

Les causes possibles de cette erreur sont les suivantes :

Cause Description
Flux partagé non disponible Le flux partagé n'existe pas.
Flux partagé non déployé Le flux partagé existe, mais n'est pas déployé.

Cause : flux partagé non disponible

Dans la règle FlowCallout, si le flux partagé défini dans l'élément <SharedFlowBundle> n'existe pas dans l'environnement, cette erreur se produit.

Par exemple, si l'élément <SharedFlowBundle> de la règle FlowCallout contient un flux partagé appelé SharedFlow_Sample et si ce flux partagé n'existe pas dans l'environnement, l'erreur se produit.

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnostic

  1. Identifiez le flux partagé qui n'existe pas. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans l'élément faultstring suivant, le nom du flux partagé est SharedFlow_Sample.

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Examinez toutes les règles d'appel de flux dans le proxy d'API spécifique où l'échec s'est produit. Vérifiez la présence d'une règle FlowCallout dans laquelle l'élément <SharedFlowBundle> est spécifié avec le nom de flux identifié à l'étape 1 ci-dessus.

    Par exemple, la règle suivante spécifie <SharedFlowBundle> comme SharedFlow_Sample, qui correspond à ce qui est contenu dans la chaîne d'erreur.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Dans l'interface utilisateur Edge, vérifiez si ce flux partagé existe sous API > Flux partagés Si ce n'est pas le cas, c'est la cause de l'erreur. (Notez que dans la nouvelle interface utilisateur Edge, vous pouvez trouver des flux partagés dans l'onglet Développement.)

    Par exemple, sur la capture d'écran ci-dessous, le flux partagé SharedFlow_Sample n'existe pas.

    Comme ce flux partagé n'existe pas, vous obtenez le code d'erreur suivant :

    flow.SharedFlowNotFound
    

Solution

Assurez-vous que le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout existe et est déployé dans l'environnement dans lequel la requête API est exécutée.

Pour résoudre le problème, choisissez l'une des options suivantes :

  1. Créez un flux partagé appelé SharedFlow_Sample comme indiqué ci-dessous et déployez-le dans l'environnement de test comme indiqué ci-dessous:

  2. Utilisez un flux partagé déjà déployé dans l'environnement de test dans la règle FlowCallout. Par exemple, vous pouvez spécifier SharedFlow_demo dans la règle FlowCallout.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    Si vous effectuez un appel d'API dans l'environnement de test, vous ne verrez plus l'erreur, car la règle FlowCallout est également déployée dans l'environnement de test.

Cause : flux partagé non déployé

Si le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout n'est pas déployé, cette erreur se produit.

Par exemple, si l'élément <SharedFlowBundle> de la règle FlowCallout contient un flux partagé appelé SharedFlow_example qui n'est pas déployé dans l'environnement spécifique dans lequel la requête API est effectuée, l'erreur se produit.

Exemple de message d'erreur

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnostic

  1. Identifiez le flux partagé qui n'est pas déployé. Vous trouverez ces informations dans l'élément faultstring de la réponse d'erreur. Par exemple, dans l'élément faultstring suivant, le nom du flux partagé est Shared-Flow_example.

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. Dans l'interface utilisateur Edge, vérifiez si ce flux partagé est déployé.

    Par exemple, vous remarquerez dans la capture d'écran ci-dessous que le flux partagé SharedFlow_example existe, mais que n'est pas déployé.

    Comme ce flux partagé n'est pas déployé, vous obtenez le code d'erreur :

    flow.SharedFlowNotFound
    

Solution

Assurez-vous que le flux partagé spécifié dans l'élément <SharedFlowBundle> de la règle FlowCallout existe et est déployé dans l'environnement dans lequel la requête API est exécutée.

Pour corriger l'exemple ci-dessus, déployez le flux partagé SharedFlow_example dans l'environnement de test, comme indiqué ci-dessous :

Si vous effectuez un appel d'API dans l'environnement de test, vous ne verrez plus l'erreur, car la règle FlowCallout est également déployée dans l'environnement de test.