Risoluzione dei problemi relativi agli errori di runtime dei criteri FlowCallout

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

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 questa informazione 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 sopra.

    Ad esempio, la seguente policy specifica <SharedFlowBundle> come SharedFlow_Sample, che corrisponde a quanto riportato 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, controlla se questo flusso condiviso esiste in Sviluppa > Flussi condivisi. Se non esiste, è questa la causa dell'errore. Tieni presente che nella nuova UI puoi trovare i flussi condivisi nella scheda Sviluppa.

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

    Il flusso condiviso SharedFlow_Sample non è elencato nella colonna Flusso condiviso.

    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 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 e implementalo nell'ambiente di test come mostrato di seguito:

    Il flusso condiviso SharedFlow_Sample è elencato nella colonna Flusso condiviso.

  2. Utilizza un flusso condiviso già esistente di cui è stato eseguito il deployment nell'ambiente di test nel criterio Callout flusso. Ad esempio, puoi 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é il callout di flusso viene eseguito il deployment anche nell'ambiente di test.

Causa: flusso condiviso non sottoposto a deployment

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

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

Diagnosi

  1. Identifica il flusso condiviso non implementato. 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, controlla se questo flusso condiviso è stato implementato.

    Ad esempio, nello screenshot seguente noterai che il flusso condiviso Shared-Flow_example esiste, ma non è stato implementato.

    Il flusso condiviso Shared-Flow_example esiste e non ha deployment.

    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 Shared-Flow_example nell'ambiente di test. Lo screenshot seguente mostra che il flusso condiviso SharedFlow_Sample è stato implementato:

Il flusso condiviso SharedFlow_Sample viene implementato nell'ambiente di test.

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.