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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

InvalidConnectorInstance

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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.

Zrzut ekranu z przykładowym błędem

Komunikat o błędzie dotyczący nieprawidłowej instancji 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ź błędy w pliku XML zasady ExtensionCallout i sprawdź, czy element <Connector> jest obecny i czy 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, więc wdrożenie serwera proxy interfejsu API nie powiodło się.

Rozdzielczość

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

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

Aby ustalić nazwę rozszerzenia, w interfejsie Edge możesz wybrać Administracja > Rozszerzenia. Widoczne będą w nim nazwy wszystkich rozszerzeń w organizacji. Nazwę rozszerzenia należy ustawić w elemencie <Connector>.

Możesz wyświetlić nazwy wszystkich rozszerzeń w interfejsie Edge.

Poniżej znajduje się przykład z prawidłową nazwą rozszerzenia ustawioną 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 lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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.

Zrzut ekranu z przykładowym błędem

Komunikat o błędzie Nie istnieje oprogramowanie sprzęgające

Przyczyna

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

Diagnostyka

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

    W poniższym przykładzie w poniższym 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ź błędy w pliku XML zasady ExtensionCallout i upewnij się, że nazwa rozszerzenia określona w elemencie <Connector> zgadza się z treścią komunikatu 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 (określona w kroku 1).

    W interfejsie użytkownika Edge kliknij Administracja > Rozszerzenia i sprawdź, czy rozszerzenie istnieje oraz czy nazwa jest zgodna z nazwą określoną w elemencie <Connector> w zasadzie ExtensionCallout.

    Na zrzucie ekranu poniżej zauważysz, że rozszerzenie cloud_storage_ext istnieje, ale nie pasuje do elementu <Connector> określonego w powyższych przykładowych zasadach ExtensionCallout:

    Możesz wyświetlić nazwy wszystkich rozszerzeń w interfejsie Edge.

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

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

Rozdzielczość

Upewnij się, że rozszerzenie określone w elemencie <Connector> w zasadzie ExtensionCallout zostało utworzone, a nazwa jest podana prawidłowo.

Na stronie Samouczek: korzystanie z rozszerzeń dowiesz się, jak utworzyć rozszerzenie.

Aby poprawić przykład opisany powyżej, popraw nazwę, 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 lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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.

Zrzut ekranu z przykładowym 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. Wskaż nazwę zasady ExtensionCallout. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady ExtensionCallout to Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Sprawdź błędy w pliku XML zasady ExtensionCallout i upewnij się, że 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.

Zapoznaj się z artykułem Samouczek: korzystanie z rozszerzeń, aby dowiedzieć się, jak utworzyć rozszerzenie i jak używać go zgodnie z zasadami z prawidłowym elementem <Action>.

Aby rozwiązać powyższy 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 za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat 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.

Zrzut ekranu z przykładowym błędem

Komunikat o błędzie „Zezwól na rozszerzenia w przepływie klienta po wysłaniu klienta”

Przyczyna

W procesie PostClient nie można mieć zasad ExtensionCallout. Jeśli zasada ExtensionCallout jest umieszczona w procesie PostClient Flow, wdrożenie serwera proxy interfejsu API nie powiedzie się z tym błędem.

Diagnostyka

  1. Wskaż nazwę zasady ExtensionCallout. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady ExtensionCallout to Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Sprawdź wszystkie procesy PostClient Flow 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 zasada ExtensionCallout (określona w kroku 1) znajduje się w procesie PostClient Flow, to jest to przyczyna błędu.

    Na przykład ten proces PostClient Flow zawiera zasady ExtensionCallout:

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

Rozdzielczość

Upewnij się, że w procesie PostClient nie jest umieszczona zasada ExtensionCallout.

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

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