Fehlerbehebung bei der Bereitstellung der ExtensionCallout-Richtlinie

Sie lesen gerade die Dokumentation zu Apigee Edge.
Apigee X-Dokumentation aufrufen.
info

InvalidConnectorInstance

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge Management API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

Beispiel für Fehlermeldung

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

Screenshot eines Beispielfehlers

Fehlermeldung zu ungültiger Connector-Instanz

Ursache

Dieser Fehler tritt auf, wenn das Element <Connector> in der ExtensionCallout-Richtlinie fehlt oder auf einen leeren Wert festgelegt ist.

Diagnose

  1. Suchen Sie in der Fehlermeldung nach dem Namen der ExtensionCallout-Richtlinie. Im folgenden Fehler lautet der Name der ExtensionCallout-Richtlinie beispielsweise Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Untersuchen Sie die XML der fehlgeschlagenen ExtensionCallout-Richtlinie und prüfen Sie, ob das Element <Connector> vorhanden und nicht leer ist. Beispiel: Im folgenden Beispiel ist das Element <Connector> leer und enthält nicht den Namen der Erweiterung:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
        <DisplayName>Extension Callout-1</DisplayName>
        <Connector></Connector>
        <Action>downloadFile</Action>
        <Input><![CDATA[
             {}
         ]]></Input>
        <Output>context-variable-name</Output>
    </ConnectorCallout>

Da das Element <Connector> leer ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Der Wert für das Element <Connector> der ExtensionCallout-Richtlinie muss immer angegeben sein und mit dem Namen der tatsächlichen Erweiterung übereinstimmen, die in der Organisation erstellt wurde.

Um die oben gezeigte ExtensionCallout-Beispielrichtlinie zu korrigieren, können Sie das Element <Connector> auf den Namen der Erweiterung festlegen, die in der Umgebung vorhanden ist, in der der API-Proxy bereitgestellt wird.

Den Namen der Erweiterung finden Sie in der Edge-Benutzeroberfläche unter Verwaltung > Erweiterungen. Dort werden die Namen aller Erweiterungen in Ihrer Organisation angezeigt. Der Name der Erweiterung muss im Element <Connector> festgelegt werden.

Namen aller Erweiterungen in der Edge-Benutzeroberfläche ansehen

Unten sehen Sie das Beispiel mit dem Erweiterungsnamen, der im <Connector>-Element richtig festgelegt ist:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

ConnectorInstanceDoesNotExists

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge Management API schlägt mit der folgenden Fehlermeldung fehl:

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

Beispiel für Fehlermeldung

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Beispiel für einen Fehler-Screenshot

Fehlermeldung „Connector-Instanz nicht vorhanden“

Ursache

Dieser Fehler tritt auf, wenn für das Element <Connector> in der ExtensionCallout-Richtlinie ein Name angegeben ist, der in der Umgebung, in der der API-Proxy bereitgestellt wird, nicht vorhanden ist.

Diagnose

  1. Ermitteln Sie den Namen der ExtensionCallout-Richtlinie, den InvalidExtension-Namen, der im Element <Connector> der ExtensionCallout-Richtlinie verwendet wird, und die Umgebung, in der der Fehler aufgetreten ist. Sie finden alle diese Elemente in der Fehlermeldung.

    Im folgenden Fehler lautet der Name der ExtensionCallout-Richtlinie beispielsweise Extension Callout-1,invalid , der Name der Erweiterung cloud_storage und der Umgebungsname test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. Sehen Sie sich die XML-Datei der fehlgeschlagenen ExtensionCallout-Richtlinie an und prüfen Sie, ob der für das <Connector>-Element angegebene Erweiterungsname mit dem in der Fehlermeldung übereinstimmt.

    In diesem Beispiel lautet der im Element <Connector> angegebene Erweiterungsname cloud_storage:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage</Connector>
            <Action>downloadFile</Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
  3. Prüfen Sie, ob der Erweiterungsname in der Umgebung erstellt wurde (in Schritt 1 bestimmt).

    Rufen Sie in der Edge-UI Admin > Erweiterungen auf und prüfen Sie, ob die Erweiterung vorhanden ist und der Name mit dem im <Connector>-Element der ExtensionCallout-Richtlinie angegebenen Namen übereinstimmt.

    Im Screenshot unten sehen Sie, dass die Erweiterung cloud_storage_ext vorhanden ist, aber nicht dem <Connector>-Element entspricht, das in der oben gezeigten Beispielrichtlinie „ExtensionCallout“ angegeben ist:

    Namen aller Erweiterungen in der Edge-Benutzeroberfläche ansehen

    Da der im <Connector>-Element angegebene Erweiterungsname nicht vorhanden ist, erhalten Sie den Bereitstellungsfehler:

    In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Auflösung

Prüfen Sie, ob die im Element <Connector> der ExtensionCallout-Richtlinie angegebene Erweiterung erstellt wurde und den richtigen Namen hat.

Informationen zum Erstellen der Erweiterung finden Sie unter Anleitung: Erweiterungen verwenden.

Um den Fehler im obigen Beispiel zu beheben, korrigieren Sie den Namen, damit er mit der tatsächlichen Erweiterung übereinstimmt:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

InvalidAction

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge Management API schlägt mit der folgenden Fehlermeldung fehl:

Error Saving Revision revision_number
In policy_name: Action must not be empty.

Beispiel für Fehlermeldung

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

Screenshot eines Beispielfehlers

Fehlermeldung „Ungültige Aktion“

Ursache

Dieser Fehler tritt auf, wenn das Element <Action> in der ExtensionCallout-Richtlinie fehlt oder auf einen leeren Wert festgelegt ist.

Diagnose

  1. Ermitteln Sie den Namen der ExtensionCallout-Richtlinie. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Name der ExtensionCallout-Richtlinie beispielsweise Extension Callout-1:.

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. Sehen Sie sich die XML-Datei der fehlgeschlagenen ExtensionCallout-Richtlinie an und prüfen Sie, ob im <Action>-Element eine Aktion angegeben ist. Wenn das <Action>-Element fehlt oder leer ist, ist das die Ursache des Fehlers.

    In diesem Beispiel ist das Element <Action> leer:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage_ext</Connector>
            <Action></Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>

Lösung

Achten Sie darauf, dass das Element <Action> in der ExtensionCallout-Richtlinie immer angegeben und nicht leer ist.

Informationen zum Erstellen einer Erweiterung und zur Verwendung in der Richtlinie mit dem richtigen <Action>-Element finden Sie unter Anleitung: Erweiterungen verwenden.

Geben Sie die richtige Aktion für die Erweiterung an, um das Problem oben zu beheben:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

AllowExtensionsInPostClientFlow

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge Management API schlägt mit dieser Fehlermeldung fehl:

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

Beispiel für Fehlermeldung

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

Screenshot eines Beispielfehlers

Fehlermeldung „Allow Extensions In Post Client Flow“ (Erweiterungen im PostClientFlow zulassen)

Ursache

Eine ExtensionCallout-Richtlinie darf nicht in einem PostClient-Ablauf verwendet werden. Wenn eine ExtensionCallout-Richtlinie in einem PostClient-Ablauf platziert wird, schlägt die Bereitstellung des API-Proxys mit diesem Fehler fehl.

Diagnose

  1. Ermitteln Sie den Namen der ExtensionCallout-Richtlinie. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Name der ExtensionCallout-Richtlinie beispielsweise Extension Callout-1:.

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Untersuchen Sie alle PostClient-Abläufe an allen Endpunkten des betreffenden API-Proxys, auf dem der Fehler aufgetreten ist. Weitere Informationen finden Sie im Artikel Die Ausführung eines Proxys mit Abläufen steuern.

    Wenn Sie feststellen, dass die ExtensionCallout-Richtlinie (die in Schritt 1 ermittelt wurde) im PostClient-Ablauf platziert ist, ist das die Ursache des Fehlers.

    Der folgende PostClient-Ablauf enthält beispielsweise ExtensionCallout-Richtlinien:

        ...
        <PostClientFlow>
                <Request/>
                <Response>
                    <Step>
                        <Name>Extension-Callout-1</Name>
                    </Step>
                </Response>
            </PostClientFlow>
        ...

Lösung

Die ExtensionCallout-Richtlinie darf nicht im PostClient-Ablauf platziert werden.

Um das oben erwähnte Problem zu beheben, verschieben Sie die ExtensionCallout-Richtlinie in einen anderen Ablauf.

...
<PreFlow name="PreFlow">
    <Request/>
    <Response>
        <Step>
            <Name>Extension-Callout-1</Name>
        </Step>
    </Response>
</PreFlow>
...