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 sottoposto a 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 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 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 tutti i criteri di 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, verifica 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 implementato 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 nel criterio Callout 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 del 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 Shared-Flow_example che non è stato implementato 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 implementato 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&#39;ambiente di test.

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