Rozwiązywanie problemów z wdrażaniem zasad dotyczących objaśnienia rozszerzenia

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

InvalidConnectorInstance

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Komunikat o błędzie: Nieprawidłowa instancja oprogramowania sprzęgającego

Przyczyna

Ten błąd występuje, jeśli w zasadzie ExtensionCallout brakuje elementu <Connector> lub jest on ustawiony na pustą wartość.

Diagnostyka

  1. Znajdź nazwę zasady ExtensionCallout w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady ExtensionCallout to Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Sprawdź nieprawidłowy kod XML zasady ExtensionCallout i upewnij się, że element <Connector> jest obecny i nie jest pusty. Na przykład w zasadzie poniżej element <Connector> jest pusty i nie zawiera nazwy rozszerzenia:

    <?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>

Element <Connector> jest pusty, dlatego nie można wdrożyć proxy interfejsu API.

Rozdzielczość

Upewnij się, że wartość elementu <Connector> zasady rozszerzenia objaśnień jest zawsze określona i odpowiada nazwie rzeczywistego rozszerzenia utworzonego w organizacji.

Aby poprawić przykładową zasadę ExtensionCallout powyżej, ustaw element <Connector> na nazwę rozszerzenia występującego w konkretnym środowisku, w którym wdrażany jest serwer proxy interfejsu API.

Aby określić nazwę rozszerzenia, w interfejsie Edge przejdź do Administracja > Rozszerzenia. Znajdziesz tam nazwy wszystkich rozszerzeń w organizacji. Nazwę rozszerzenia należy ustawić w elemencie <Connector>.

Wyświetl nazwy wszystkich rozszerzeń w interfejsie Edge.

Poniżej znajduje się przykład z poprawną nazwą rozszerzenia w elemencie <Connector>:

<?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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Komunikat o błędzie „Instancja oprogramowania sprzęgającego nie istnieje”

Przyczyna

Ten błąd występuje, jeśli element <Connector> w zasadzie ExtensionCallout ma nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.

Diagnostyka

  1. Wskaż nazwę zasady ExtensionCallout, nieprawidłową nazwę rozszerzenia używaną w elemencie <Connector> zasady ExtensionCallout oraz środowisko, w którym wystąpił błąd. Wszystkie te elementy znajdziesz w komunikacie o błędzie.

    Na przykład w tym błędzie nazwa zasady ExtensionCallout to Extension Callout-1,invalid nazwa rozszerzenia to cloud_storage, a nazwa środowiska to test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. Sprawdź niepoprawny kod XML zasady ExtensionCallout i upewnij się, że nazwa rozszerzenia podana w elemencie <Connector> jest zgodna z nazwą w komunikacie o błędzie.

    W tym przykładzie nazwa rozszerzenia określona w elemencie <Connector> to 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. Sprawdź, czy nazwa rozszerzenia została utworzona w środowisku (co zostało określone w kroku 1).

    W interfejsie Edge wybierz Admin > (Administrator >). Rozszerzenia i sprawdź, czy rozszerzenie istnieje oraz czy nazwa jest zgodna z podaną w elemencie <Connector> w zasadzie ExtensionCallout.

    Na zrzucie ekranu poniżej widać, że rozszerzenie cloud_storage_ext istnieje, ale nie pasuje do elementu <Connector> określonego w przykładowej zasadzie ExtensionCallout widocznej powyżej:

    Wyświetl nazwy wszystkich rozszerzeń w interfejsie Edge.

    W nazwie rozszerzenia podana w elemencie <Connector> nie istnieje, dlatego pojawia się błąd wdrożenia:

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

Rozdzielczość

Sprawdź, czy rozszerzenie określone w elemencie <Connector> zasady ExtensionCallout zostało utworzone, a nazwa jest określona prawidłowo.

Informacje o tworzeniu rozszerzeń znajdziesz w artykule Samouczek: korzystanie z rozszerzeń.

Aby poprawić przykład powyżej, popraw nazwę tak, aby była zgodna z rozszerzeniem:

<?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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Nieprawidłowy komunikat o błędzie działania

Przyczyna

Ten błąd występuje, jeśli w zasadzie ExtensionCallout brakuje elementu <Action> lub jest on ustawiony na pustą wartość.

Diagnostyka

  1. Określ nazwę zasady ExtensionCallout. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady ExtensionCallout to Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Sprawdź niepoprawny kod XML zasady ExtensionCallout i sprawdź, czy w elemencie <Action> określono działanie. Jeśli brakuje elementu <Action> lub jest on pusty, to właśnie jest przyczyną błędu.

    W tym przykładzie element <Action> jest pusty:

        <?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>
    

Rozdzielczość

Upewnij się, że element <Action> jest zawsze określony i nie jest pusty w zasadzie ExtensionCallout.

Informacje o tym, jak utworzyć rozszerzenie i jak używać go w zasadach z prawidłowym elementem <Action>, znajdziesz w artykule Samouczek: używanie rozszerzeń.

Aby rozwiązać ten problem, określ prawidłowe działanie rozszerzenia:

<?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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API przy użyciu interfejsu Edge lub interfejsu Edge Management API zakończy się wyświetleniem tego komunikatu o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Komunikat o błędzie „Zezwalaj na rozszerzenia w trakcie prac po stronie klienta”

Przyczyna

W przepływie PostClient nie można stosować zasad ExtensionCallout. Jeśli w procesie PostClient jest umieszczona zasada ExtensionCallout, wdrożenie serwera proxy interfejsu API zakończy się niepowodzeniem.

Diagnostyka

  1. Określ nazwę zasady ExtensionCallout. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady ExtensionCallout to Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Sprawdź wszystkie przepływy PostClient we wszystkich punktach końcowych konkretnego serwera proxy interfejsu API, w którym wystąpił błąd. Zapoznaj się z artykułem Kontrolowanie działania serwera proxy za pomocą przepływów.

    Jeśli zauważysz, że w procesie PostClient została umieszczona zasada ExtensionCallout (określona w kroku 1), to właśnie to jest przyczyną błędu.

    Na przykład ten przepływ PostClient zawiera zasadę ExtensionCallout:

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

Rozdzielczość

Upewnij się, że zasada ExtensionCallout nie została umieszczona w przepływie PostClient.

Aby rozwiązać opisany powyżej problem, musisz przenieść zasadę ExtensionCallout do dowolnego innego procesu.

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