Risoluzione degli errori di runtime del criterio FlowCallout

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

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 eseguito il deployment.

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 callout flusso contiene un flusso condiviso denominato SharedFlow_Sample e se questo flusso condiviso non esiste nell'ambiente, si verifica l'errore.

Messaggio di errore di esempio

{
    "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 è presente un criterio di callout del flusso in cui è specificato l'elemento <SharedFlowBundle> con il nome del flusso identificato nel passaggio 1 precedente.

    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, è la causa dell'errore. (Tieni presente che nella nuova UI 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> del criterio relativo al callout del flusso esista e sia 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 come mostrato di seguito ed eseguine il deployment nell'ambiente di test come illustrato di seguito:

  2. Utilizzare un flusso condiviso già esistente di cui è stato eseguito il deployment nell'ambiente di test nel criterio callout del flusso. Ad esempio, puoi specificare SharedFlow_demo nelle norme 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ù perché il callout Flow viene implementato 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 viene implementato, si verifica questo errore.

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

Messaggio di errore di esempio

{
    "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 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 di Edge, controlla se è stato eseguito il deployment di questo flusso condiviso.

    Ad esempio, nello screenshot seguente noterai che il flusso condiviso SharedFlow_exampleesiste, manon è stato implementato.

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

    flow.SharedFlowNotFound
    

Risoluzione

Assicurati che il flusso condiviso specificato nell'elemento <SharedFlowBundle> del criterio relativo al callout del flusso esista e sia implementato 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.