Fehlerbehebung der Laufzeit bei FlowCallout-Richtlinien

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

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 Edge-Benutzeroberfläche unter APIs > Freigegebene Abläufe, ob dieser freigegebene Ablauf vorhanden ist. Ist dies nicht der Fall, liegt das an der Ursache des Fehlers. (Beachten Sie, dass Sie in der neuen Edge-Benutzeroberfläche freigegebene Abläufe auf dem Tab „Entwickeln“ finden.)

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

    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 wie unten gezeigt einen freigegebenen Ablauf mit dem Namen SharedFlow_Sample und stellen Sie ihn wie unten gezeigt in der Testumgebung bereit:

  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 SharedFlow_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 Edge-Benutzeroberfläche, ob dieser freigegebene Ablauf bereitgestellt ist.

    Im folgenden Screenshot sehen Sie beispielsweise, dass der freigegebene Ablauf SharedFlow_example zwar vorhanden ist, aber nicht bereitgestellt ist.

    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 SharedFlow_example in der Testumgebung bereit, um das obige Beispiel zu korrigieren.

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.