Rozwiązywanie problemów związanych z błędami wdrażania zasad PythonScript

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

InvalidResourceUrlFormat

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API przy użyciu 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
Invalid resource url format. Resource url is invalid_URL.

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to prod
Invalid resource url format. Resource url is py:myscript.py.

Przykładowy zrzut ekranu

Przyczyna

Jeśli format adresu URL zasobu podany w elemencie <ResourceURL> lub <IncludeURL> w parametrze Zasada PythonScript jest nieprawidłowa, wdrożenie serwera proxy interfejsu API się nie uda.

Prawidłowy format to:

<ResourceURL>py://file_name.py</ResourceURL>
<IncludeURL>py://file_name.py</IncludeURL>

Jeśli na przykład element <ResourceURL> jest określony w sposób opisany poniżej, wdrożenie serwera proxy interfejsu API nie powiedzie się, ponieważ nie jest zgodne z wymaganym wzorcem:

<ResourceURL>py:myscript.py</ResourceURL>

Diagnostyka

  1. Określ nieprawidłowy format adresu URL zasobu używany w zasadzie PythonScript. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nieprawidłowy format adresu URL zasobu to py:myscript.py:

    Invalid resource url format. Resource url is py:myscript.py.
    
  2. Sprawdź wszystkie zasady PythonScript na konkretnym serwerze proxy API, na którym wystąpił błąd. Jeśli występuje zasada PythonScript, w której adres URL zasobu określony w parametrze <ResourceURL> lub <IncludeURL> pasuje do nieprawidłowego wpisu określonego w kroku 1 powyżej, to właśnie jest przyczyną błędu.

    Na przykład ta zasada określa adres URL zasobu jako py:myscript.py, który jest zgodny z treścią komunikatu o błędzie:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable">
        <DisplayName>py-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>py:myscript.py</ResourceURL>
    </Script>
    

    Adres URL zasobu jest podany jako py:myscript.py, co jest nieprawidłowe, dlatego wdrożenie serwera proxy interfejsu API kończy się niepowodzeniem i wyświetlany jest błąd:

    Invalid resource url format. Resource url is py:myscript.py.
    

Rozdzielczość

Sprawdź, czy format adresu URL zasobu określony w elemencie <ResourceURL> zasady PythonScript jest prawidłowy. Na przykład:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable">
    <DisplayName>py-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>py://myscript.py</ResourceURL>
</Script>

InvalidResourceUrlReference

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API przy użyciu 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
Invalid resource url ref invalid_reference in policy policy_name in org_name

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to prod
Invalid resource url ref py://myscript.py in policy Python_script in myorg

Przykładowy zrzut ekranu

Przyczyna

Jeśli elementy <ResourceURL> i <IncludeURL> odnoszą się do pliku PythonScript nie istnieje, wdrożenie serwera proxy interfejsu API się nie uda. Jeśli wdrażasz pakiet serwera proxy na komputerze lokalnym, skrypt PythonScript pliki źródłowe muszą być przechowywane w domenie /apiproxy/resources/py(w zakresie serwera proxy interfejsu API).

W interfejsie Edge pliki źródłowe PythonScript znajdują się w sekcji py w sekcji Skrypty. panelu Nawigator w edytorze serwera proxy API, jak pokazano poniżej:

Pliki zasobów możesz też przechowywać w repozytoriach na poziomie organizacji i środowiska (aby na przykład udostępnić kod PythonScript wszystkim serwerom proxy w organizacji lub środowisku). Ten błąd występuje, jeśli nie można znaleźć żadnych plików zasobów określonych w zasadzie.

Diagnostyka

  1. Określ zasadę PythonScript, w której wystąpił błąd, oraz odniesienie do nieprawidłowego adresu URL zasobu. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to Python_script, a nieprawidłowe odniesienie do adresu URL zasobu to py://myscript.py:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    
  2. Sprawdź, czy odniesienie do adresu URL zasobu określone w nieudanej zasadzie PythonScript jest zgodne z wartością podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa odwołanie do adresu URL zasobu jako py://myscript.py, które jest zgodne z treścią komunikatu o błędzie:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Script async="false" continueOnError="false" enabled="true" name="Python_script">
        <DisplayName>Python-1</DisplayName>
        <Properties/>
        <ResourceURL>py://myscript.py</ResourceURL>
    </Script>
    
  3. Sprawdź, czy plik wskazany w kroku 1 należy do określonego pakietu serwera proxy interfejsu API lub czy istnieje w zakresie organizacji lub środowiska.

    1. Aby sprawdzić, czy plik należy do określonego pakietu proxy interfejsu API, wykonaj jedną z tych czynności:
      1. W interfejsie Edge sprawdź, czy ten plik znajduje się w sekcji Skrypty na serwerze proxy interfejsu API.
      2. Pobierz pakiet interfejsów API serwera proxy i wyszukaj plik, jeśli istnieje.
    2. Jeśli plik nie należy do określonego pakietu serwera proxy interfejsu API, sprawdź, czy istnieje on na poziomie organizacji lub środowiska. W tym celu możesz użyć interfejsu Resource Files API.

    Jeśli pliku nie ma na poziomie serwera proxy interfejsu API, organizacji lub środowiska, jest to przyczyna błędu.

    W powyższym przykładzie nieprawidłowa nazwa pliku PythonScript to myscript.py. Na zrzucie ekranu poniżej widać, że w sekcji Skrypty nie pojawia się plik określony jako adres URL zasobu w zasadzie. Pliku nie ma też na poziomie organizacji ani środowiska. W związku z tym wdrożenie serwera proxy interfejsu API kończy się niepowodzeniem i wyświetla się błąd:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    

Rozdzielczość

Upewnij się, że pliki PythonScript określone w elementach <ResourceURL> i <IncludeURL> odnoszą się do prawidłowego pliku istniejącego na poziomie serwera proxy interfejsu API, organizacji lub środowiska.

Aby poprawić przykładową zasadę PythonScriptu pokazaną powyżej, dodaj plik myscript.py do pakietu serwera proxy interfejsu API. Na zrzucie ekranu poniżej możesz zobaczyć, że pliki PythonScript określone w elementach <ResourceURL> i <IncludeURL> są widoczne w sekcji Skrypty pakietu API Proxy: