Fehlerbehebung der Laufzeit bei FlowCallout-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

SharedFlowNotFound

Fehlercode

flow.SharedFlowNotFound

Fehlerantworttext

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Mögliche Ursachen

Mögliche Ursachen für diesen Fehler:

Ursache Beschreibung
Freigegebener Ablauf nicht verfügbar Der freigegebene Ablauf ist nicht vorhanden.
Freigegebener Ablauf nicht bereitgestellt Der freigegebene Ablauf existiert, wird aber nicht bereitgestellt.

Ursache: Freigegebener Ablauf nicht verfügbar

Wenn in der Ablauf-Callout-Richtlinie der freigegebene Ablauf im Element <SharedFlowBundle> in der Umgebung nicht vorhanden ist, tritt dieser Fehler auf.

Wenn beispielsweise das Element <SharedFlowBundle> in der Flow-Callout-Richtlinie einen gemeinsamen Ablauf namens SharedFlow_Sample enthält und dieser freigegebene Ablauf in der Umgebung nicht existiert, tritt der Fehler auf.

Beispiel für Fehlermeldung

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnose

  1. Ermitteln Sie den freigegebenen Ablauf, der nicht existiert. Dies finden Sie im Element faultstring der Fehlerantwort. Im folgenden faultstring lautet der Name des freigegebenen Ablaufs beispielsweise SharedFlow_Sample:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Untersuchen Sie alle Ablauf-Callout-Richtlinien im spezifischen API-Proxy, in dem der Fehler aufgetreten ist. Prüfen Sie, ob es eine Ablauf-Callout-Richtlinie gibt, in der das <SharedFlowBundle>-Element mit dem Ablaufnamen angegeben wird, der oben in Schritt 1 angegeben ist.

    Beispiel: Die folgende Richtlinie gibt <SharedFlowBundle> als SharedFlow_Sample an, was mit dem Inhalt des Fehlerstrings übereinstimmt.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Prüfen Sie in der Benutzeroberfläche, ob dieser freigegebene Ablauf unter Entwickeln > Freigegebene Abläufe vorhanden ist. Ist dies nicht der Fall, liegt das an der Ursache des Fehlers. (Beachten Sie, dass Sie in der neuen Benutzeroberfläche freigegebene Abläufe auf dem Tab "Entwickeln" finden.)

    Im Screenshot unten ist beispielsweise der freigegebene Ablauf SharedFlow_Sample nicht vorhanden.

    Der freigegebene Ablauf "SharedFlow_Sample" ist nicht in der Spalte "Sharedflow" aufgeführt.

    Da dieser freigegebene Ablauf nicht vorhanden ist, erhalten Sie den Fehlercode:

    flow.SharedFlowNotFound
    

Lösung

Achten Sie darauf, dass der im Element <SharedFlowBundle> der Ablauf-Callout-Richtlinie angegebene freigegebene Ablauf vorhanden ist und in der spezifischen Umgebung existiert ist, in der die API-Anfrage ausgeführt wird.

Wählen Sie eine der folgenden Möglichkeiten, um das Problem zu beheben:

  1. Erstellen Sie einen freigegebenen Ablauf mit dem Namen SharedFlow_Sample und stellen Sie die Testumgebung wie unten gezeigt bereit:

    Der freigegebene Ablauf "Freigegebener Ablauf" wird in der Spalte "Freigegebener Ablauf" aufgeführt.

  2. Verwenden Sie bereits einen freigegebenen Ablauf, der in der Testumgebung in der Richtlinie "Ablauf-Callout" bereitgestellt wird. Beispielsweise können Sie in der Richtlinie "Ablauf-Callout" die SharedFlow_demo angeben.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    Wenn Sie einen API-Aufruf an die Testumgebung ausführen, wird der Fehler nicht mehr angezeigt, da die Ablauf-Callouts auch in der Testumgebung bereitgestellt werden.

Ursache: Freigegebener Ablauf nicht bereitgestellt

Wenn der freigegebene Ablauf im <SharedFlowBundle>-Element der Flow-Callout-Richtlinie nicht bereitgestellt wird, tritt dieser Fehler auf.

Wenn beispielsweise das Element <SharedFlowBundle> in der Ablauf-Callout-Richtlinie einen gemeinsamen Ablauf namens Shared-Flow_example enthält, der nicht in der spezifischen Umgebung bereitgestellt wird, in der die API-Anforderung gestellt wird, tritt der Fehler auf.

Beispiel für Fehlermeldung

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Diagnose

  1. Identifizieren Sie den freigegebenen Ablauf, der nicht bereitgestellt ist. Dies finden Sie im Element faultstring der Fehlerantwort. Im folgenden faultstring lautet der Name des freigegebenen Ablaufs beispielsweise Shared-Flow_example:

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. Prüfen Sie in der Benutzeroberfläche, ob dieser freigegebene Ablauf bereitgestellt ist.

    Im folgenden Screenshot sehen Sie beispielsweise, dass der freigegebene Ablauf Shared-Flow_example vorhanden, aber nicht bereitgestellt ist.

    Der freigegebene Ablauf "Shared-Flow_example" existiert und hat keine Bereitstellungen.

    Da dieser freigegebene Ablauf nicht bereitgestellt wird, erhalten Sie den Fehlercode:

    flow.SharedFlowNotFound
    

Lösung

Achten Sie darauf, dass der im Element <SharedFlowBundle> der Ablauf-Callout-Richtlinie angegebene freigegebene Ablauf vorhanden ist und in der spezifischen Umgebung existiert ist, in der die API-Anfrage ausgeführt wird.

Stellen Sie den freigegebenen Ablauf mit dem Namen Shared-Flow_example in der Testumgebung bereit, um das obige Beispiel zu korrigieren. Der folgende Screenshot zeigt, dass der freigegebene Ablauf SharedFlow_Sample bereitgestellt wird:

Der freigegebene Ablauf SharedFlow_Sample wird in der Testumgebung bereitgestellt.

Wenn Sie einen API-Aufruf an die Testumgebung ausführen, wird der Fehler nicht mehr angezeigt, da die Ablauf-Callouts auch in der Testumgebung bereitgestellt werden.