Risoluzione degli errori di runtime del criterio FlowCallout

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

SharedFlowNotFound

Codice di errore

flow.SharedFlowNotFound

Corpo della risposta all'errore

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

Possibili cause

Le possibili cause di questo errore sono:

Causa Descrizione
Flusso condiviso non disponibile Il flusso condiviso non esiste.
Deployment condiviso del flusso non eseguito Il flusso condiviso esiste, ma non ne è stato eseguito il deployment.

Causa: flusso condiviso non disponibile

Nel criterio relativo ai callout di flusso, questo errore si verifica se il flusso condiviso definito all'interno dell'elemento <SharedFlowBundle> non esiste nell'ambiente.

Ad esempio, se l'elemento <SharedFlowBundle> nel criterio callout Flow contiene un flusso condiviso denominato SharedFlow_Sample e questo flusso condiviso non esiste nell'ambiente, si verifica l'errore.

Esempio di messaggio di errore

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

Diagnostica

  1. Identifica un flusso condiviso che non esiste. Puoi trovarlo nell'elemento faultstring della risposta di errore. Ad esempio, nel seguente faultstring, il nome del flusso condiviso è SharedFlow_Sample:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Esamina tutte le norme sui callout di flusso nello specifico proxy API in cui si è verificato l'errore. Controlla se esistono norme sui callout di flusso in cui l'elemento <SharedFlowBundle> è specificato con il nome del flusso identificato nel passaggio 1 riportato sopra.

    Ad esempio, il seguente criterio specifica <SharedFlowBundle> come SharedFlow_Sample, che corrisponde al contenuto della stringa di errore.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Nella UI di Edge, controlla se questo flusso condiviso esiste in API > Flussi condivisi. Se non esiste, è questo il motivo dell'errore. (nota che nella nuova UI di Edge, puoi trovare i flussi condivisi nella scheda Sviluppo).

    Ad esempio, nello screenshot mostrato di seguito, il flusso condiviso SharedFlow_Sample non esiste.

    Poiché questo flusso condiviso non esiste, riceverai il codice di errore:

    flow.SharedFlowNotFound
    

Risoluzione

Assicurati che il flusso condiviso specificato nell'elemento <SharedFlowBundle> nel criterio Callout flusso esista e ne sia stato eseguito il deployment nell'ambiente specifico in cui viene eseguita la richiesta API.

Puoi scegliere uno dei seguenti modi per risolvere il problema:

  1. Crea un flusso condiviso denominato SharedFlow_Sample come mostrato di seguito ed eseguine il deployment nell'ambiente di test come mostrato di seguito:

  2. Utilizza un flusso condiviso già esistente di cui è stato eseguito il deployment nell'ambiente di test nel criterio di callout del flusso. Ad esempio, potresti specificare SharedFlow_demo nella norma sui callout di flusso.

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

    Se effettui una chiamata API all'ambiente di test, non vedrai più l'errore, perché il callout del flusso viene eseguito anche nell'ambiente di test.

Causa: deployment del flusso condiviso non eseguito

Se il flusso condiviso specificato nell'elemento <SharedFlowBundle> del criterio Callout Flow non viene implementato, si verifica questo errore.

Ad esempio, se l'elemento <SharedFlowBundle> nel criterio callout Flow contiene un flusso condiviso denominato SharedFlow_example di cui non è stato eseguito il deployment nell'ambiente specifico in cui viene effettuata la richiesta API, si verifica l'errore.

Esempio di messaggio di errore

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

Diagnostica

  1. Identifica il flusso condiviso di cui non è stato eseguito il deployment. Puoi trovarlo nell'elemento faultstring della risposta di errore. Ad esempio, nel seguente faultstring, il nome del flusso condiviso è Shared-Flow_example:

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

  2. Nella UI perimetrale, controlla se è stato eseguito il deployment di questo flusso condiviso.

    Ad esempio, nello screenshot seguente vedrai che il flusso condiviso SharedFlow_example esiste, manon è stato eseguito il deployment.

    Poiché non è stato eseguito il deployment di questo flusso condiviso, riceverai il seguente codice di errore:

    flow.SharedFlowNotFound
    

Risoluzione

Assicurati che il flusso condiviso specificato nell'elemento <SharedFlowBundle> nel criterio Callout flusso esista e ne sia stato eseguito il deployment nell'ambiente specifico in cui viene eseguita la richiesta API.

Per correggere l'esempio precedente, esegui il deployment del flusso condiviso denominato SharedFlow_example nell'ambiente di test come mostrato di seguito:

Se effettui una chiamata API all'ambiente di test, non vedrai più l'errore, perché il callout del flusso viene eseguito anche nell'ambiente di test.