Wyświetlasz dokumentację Apigee Edge.
Wyświetl dokumentację
Apigee X.
Nieprawidłowy format adresu URL zasobu
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi nie powiedzie się z tym komunikatem 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 określony w elemencie <ResourceURL>
lub elemencie <IncludeURL>
w zasadzie PythonScript jest nieprawidłowy, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Poprawny format:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Jeśli na przykład element <ResourceURL>
jest określony poniżej, wdrożenie serwera proxy interfejsu API nie powiedzie się, ponieważ nie będzie zgodne z wymaganym wzorcem:
<ResourceURL>py:myscript.py</ResourceURL>
diagnostyki,
Zidentyfikuj nieprawidłowy format adresu URL zasobu używany w zasadzie PythonScript. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w przypadku tego błędu nieprawidłowy format adresu URL zasobu to
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Sprawdź wszystkie zasady języka PythonScript na określonym serwerze proxy interfejsu API, w którym wystąpił błąd. Jeśli istnieje zasada Python, w której adres URL zasobu określony w elemencie
<ResourceURL>
lub<IncludeURL>
jest zgodny z nieprawidłowym wpisem określonym w kroku 1 powyżej, to jest przyczyną błędu.Na przykład ta zasada określa adres URL zasobu jako
py:myscript.py
, który pasuje do zawartoś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>
URL zasobu jest określony jako
py:myscript.py
, który jest nieprawidłowy, więc wdrożenie serwera proxy interfejsu API nie powiedzie się z powodu błędu:Invalid resource url format. Resource url is py:myscript.py.
Rozwiązanie
Sprawdź, czy format adresu URL zasobu określony w elemencie <ResourceURL>
w zasadzie 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>
Nieprawidłowy odniesienie do zasobu
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API przy użyciu interfejsu Edge lub API zarządzania urządzeniami brzegowymi nie powiedzie się z tym komunikatem 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 nieistniejącego pliku PythonScript, oznacza to, że wdrożenie serwera proxy interfejsu API nie powiedzie się.
Jeśli wdrażasz pakiet proxy z maszyny lokalnej, pliki źródłowe PythonaScript muszą być przechowywane w folderze /apiproxy/resources/py
(w zakresie serwera proxy interfejsu API).
W interfejsie Edge pliki źródłowe PythonScript są wyświetlane w sekcji py w sekcji Skrypty w panelu nawigacji edytora proxy interfejsu 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, gdy nie można znaleźć żadnych plików zasobów określonych w zasadzie.
diagnostyki,
Zidentyfikuj zasadę w języku PythonScript, w której wystąpił błąd, oraz odwołanie do nieprawidłowego adresu URL zasobu. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
Python_script
, a nieprawidłowe odwołanie do adresu URL zasobu topy://myscript.py
:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Sprawdź, czy odwołanie do adresu URL zasobu określone w zasadzie PythonScript, w przypadku której wystąpił błąd, 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 odpowiada 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>
Sprawdź, czy plik wskazany w kroku 1 jest częścią określonego pakietu serwera proxy interfejsu API, czy też istnieje w zakresie organizacji lub środowiska.
- Aby sprawdzić, czy plik jest częścią określonego pakietu serwera proxy interfejsu API, wykonaj jedną z tych czynności:
- W interfejsie użytkownika Edge sprawdź, czy ten plik znajduje się w sekcji Skrypty na serwerze proxy interfejsu API.
- Pobierz pakiet proxy API i przeszukaj, jeśli plik istnieje.
- Jeśli plik nie należy do konkretnego pakietu serwera proxy interfejsu API, sprawdź, czy nie istnieje on na poziomie organizacji lub środowiska. Do analizy zagrożeń możesz użyć interfejsu Resource Files API.
Jeśli plik nie istnieje na poziomie serwera proxy, organizacji lub środowiska interfejsu API, to jest przyczyną błędu.
W przykładzie powyżej nieprawidłowa nazwa pliku PythonScript to myscript.py. Zauważ, że plik określony w zasadzie jako adres URL zasobu nie pojawia się w sekcji Skrypty. Tego pliku nie ma też na poziomie organizacji lub środowiska. Dlatego wdrożenie serwera proxy interfejsu API nie powiedzie się z powodu tego błędu:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Aby sprawdzić, czy plik jest częścią określonego pakietu serwera proxy interfejsu API, wykonaj jedną z tych czynności:
Rozwiązanie
Upewnij się, że pliki Python określone w elementach <ResourceURL>
i <IncludeURL>
odnoszą się do prawidłowego pliku istniejącego na poziomie interfejsu API serwera proxy, organizacji lub środowiska.
Aby poprawić przykładowe zasady PythonScript widoczne powyżej, dodaj plik myscript.py do pakietu API serwera proxy interfejsu API. Na zrzucie ekranu poniżej możesz zobaczyć, że pliki Python określone w elementach <ResourceURL>
i <IncludeURL>
są widoczne w sekcji Skrypty pakietu interfejsu API serwera proxy: