Risoluzione dei problemi relativi agli errori di runtime dei criteri FlowCallout

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

SharedFlowNotFound

Codice di errore

flow.SharedFlowNotFound

Corpo della risposta di 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.
Flusso condiviso non di cui non è stato eseguito il deployment Il flusso condiviso esiste, ma non è stato implementato.

Causa: flusso condiviso non disponibile

Nella policy Flow Callout, se il flusso condiviso definito all'interno dell'elemento <SharedFlowBundle> non esiste nell'ambiente, si verifica questo errore.

Ad esempio, se l'elemento <SharedFlowBundle> nel criterio Callout flusso contiene un flusso condiviso chiamato SharedFlow_Sample e se 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"
        }
    }
}

Diagnosi

  1. Identifica il flusso condiviso che non esiste. Puoi trovare questo valore 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 relative ai callout di flusso nel proxy API specifico in cui si è verificato l'errore. Controlla se esiste una policy di callout del flusso in cui l'elemento <SharedFlowBundle> è specificato con il nome del flusso identificato nel passaggio 1 precedente.

    Ad esempio, la seguente policy specifica <SharedFlowBundle> come SharedFlow_Sample, che corrisponde a ciò che è presente nella 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. Nell'interfaccia utente Edge, controlla se questo flusso condiviso esiste in API > Flussi condivisi. Se non esiste, è questa la causa dell'errore. Tieni presente 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, ricevi il codice di errore:

    flow.SharedFlowNotFound
    

Risoluzione

Assicurati che il flusso condiviso specificato nell'elemento <SharedFlowBundle> nel criterio Callout flusso esista e sia stato sottoposto a 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 chiamato SharedFlow_Sample come mostrato di seguito e implementalo nell'ambiente di test come mostrato di seguito:

  2. Utilizza un flusso condiviso già esistente e implementato nell'ambiente di test nella policy di callout del flusso. Ad esempio, potresti specificare SharedFlow_demo nella policy 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, l'errore non verrà più visualizzato perché anche il callout di flusso viene eseguito il deployment nell'ambiente di test.

Causa: flusso condiviso non sottoposto a deployment

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

Ad esempio, se l'elemento <SharedFlowBundle> nel criterio Flow Callout contiene un flusso condiviso chiamato SharedFlow_example che non è stato 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"
        }
    }
}

Diagnosi

  1. Identifica il flusso condiviso di cui non è stato eseguito il deployment. Puoi trovare questa informazione 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. Nell'interfaccia utente di Edge, controlla se questo flusso condiviso è stato implementato.

    Ad esempio, nello screenshot riportato di seguito noterai che il flusso condiviso SharedFlow_example esiste, manon è stato implementato.

    Poiché questo flusso condiviso non è stato implementato, ricevi il codice di errore:

    flow.SharedFlowNotFound
    

Risoluzione

Assicurati che il flusso condiviso specificato nell'elemento <SharedFlowBundle> nel criterio Callout flusso esista e 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, l'errore non verrà più visualizzato perché il callout di flusso viene eseguito il deployment anche nell'ambiente di test.