Risoluzione dei problemi relativi agli errori di runtime dei criteri FlowCallout

Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza 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.
Deployment del flusso condiviso non eseguito Il flusso condiviso esiste, ma non è stato eseguito il deployment.

Causa: flusso condiviso non disponibile

Nel criterio callout di 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 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 relativi ai callout di 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 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. Nella UI, controlla se questo flusso condiviso esiste in Sviluppo > Flussi condivisi. Se non esiste, è questo 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> del criterio relativo al callout del flusso esista e sia implementato 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 ed eseguine il deployment nell'ambiente di test come mostrato di seguito:

    Il flusso condiviso SharedFlow_Sample è elencato nella colonna Flusso condiviso.

  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 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ù 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 Shared-Flow_example che non è 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 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. Nella UI, controlla se è stato eseguito il deployment di questo flusso condiviso.

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

Il flusso condiviso SharedFlow_Sample viene eseguito nell&#39;ambiente di test.

Se effettui una chiamata API all'ambiente di test, non vedrai più perché il callout Flow viene implementato anche nell'ambiente di test.