Risoluzione dei problemi relativi agli errori di runtime dei criteri FlowCallout

Stai visualizzando la documentazione di 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

Nel criterio di callout del flusso, 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 di callout del flusso contiene un flusso condiviso denominato 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 trovarlo nell'elemento faultstring della risposta all'errore. Ad esempio, nel seguente faultstring, il nome del flusso condiviso è SharedFlow_Sample:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Esamina tutti i criteri di callout del flusso nel proxy API specifico in cui si è verificato l'errore. Verifica se esistono criteri di callout del flusso in cui l'elemento <SharedFlowBundle> è specificato con il nome del flusso identificato nel passaggio 1 sopra.

    Ad esempio, il seguente criterio specifica <SharedFlowBundle> come SharedFlow_Sample, che corrisponde a quanto indicato 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, è la causa dell'errore. Tieni presente che nella nuova UI puoi trovare i flussi condivisi nella scheda Sviluppa.

    Ad esempio, nello screenshot riportato 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 di callout del flusso esista ed sia dipiegato nell'ambiente specifico in cui viene eseguita la richiesta API.

Per risolvere il problema, puoi scegliere uno dei seguenti metodi:

  1. Crea un flusso condiviso denominato SharedFlow_Sample e esegui il deployment 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 di callout del flusso. Ad esempio, puoi specificare SharedFlow_demo nei criteri di callout del 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: il flusso condiviso non è stato implementato

Se il flusso condiviso specificato nell'elemento <SharedFlowBundle> del criterio di callout del flusso non è stato implementato, si verifica questo errore.

Ad esempio, se l'elemento <SharedFlowBundle> nel criterio di callout del flusso contiene un flusso condiviso denominato Shared-Flow_example che non è 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"
        }
    }
}

Diagnosi

  1. Identifica il flusso condiviso che non è stato implementato. Puoi trovarlo nell'elemento faultstring della risposta all'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 Esempio_flusso_condiviso esiste e non ha implementazioni.

    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 di callout del flusso esista ed sia dipiegato nell'ambiente specifico in cui viene eseguita la richiesta API.

Per correggere l'esempio riportato sopra, 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 eseguito nell&#39;ambiente di test.

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.