Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
InvalidResourceUrlFormat
Hata mesajı
Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
Örnek hata mesajı
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Örnek ekran görüntüsü
Neden
Kaynak URL'sinin biçimi, URL'nin <ResourceURL>
veya <IncludeURL>
öğesinde belirtilmişse
PythonScript politikası geçersizse API proxy'sinin dağıtımı başarısız olur.
Doğru biçim aşağıda gösterildiği gibidir:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Örneğin, <ResourceURL>
öğesi aşağıda gösterildiği gibi belirtilirse
gerekli kalıbı izlemediğinden API proxy'sinin dağıtımı başarısız oluyor:
<ResourceURL>py:myscript.py</ResourceURL>
Teşhis
PythonScript politikasında kullanılan geçersiz kaynak URL'si biçimini tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak URL'si biçimi
py:myscript.py
şeklindedir:Invalid resource url format. Resource url is py:myscript.py.
Hatanın oluştuğu ilgili API Proxy'sinde tüm PythonScript politikalarını inceleyin.
<ResourceURL>
veya<IncludeURL>
öğesinde belirtilen kaynak URL'nin yukarıdaki 1. adımda tanımlanan geçersiz girişle eşleştiği bir PythonScript politikası varsa hatanın nedeni budur.Örneğin, aşağıdaki politika, kaynak URL'sini hata mesajındakiyle eşleşen
py:myscript.py
olarak belirtir:<?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>
Kaynak URL'si geçersiz olan
py:myscript.py
olarak belirtildiğinden, API Proxy'sinin dağıtımı şu hatayla başarısız oluyor:Invalid resource url format. Resource url is py:myscript.py.
Çözünürlük
PythonScript politikasının <ResourceURL>
öğesinde belirtilen kaynak URL biçiminin geçerli olduğundan emin olun. Örneğin:
<?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
Hata mesajı
Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
Örnek hata mesajı
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Örnek ekran görüntüsü
Neden
<ResourceURL>
ve <IncludeURL>
öğeleri bir PythonScript dosyasına başvuruda bulunuyorsa
API proxy'sinin dağıtımı başarısız olur.
Yerel makinenizden bir proxy paketi dağıtıyorsanız PythonScript
kaynak dosyaları /apiproxy/resources/py
(API proxy kapsamında) altında depolanmalıdır.
Edge kullanıcı arayüzünde, PythonScript kaynak dosyaları Komut Dosyaları bölümündeki py altında görünür aşağıda gösterildiği gibi, API proxy düzenleyicisinin Gezinme bölmesinin:
Kaynak dosyalarını kuruluş ve ortam düzeyindeki depolarda da depolayabilirsiniz (örneğin, PythonScript kodunun bir kuruluş veya env içindeki tüm proxy'ler tarafından kullanılabilmesini sağlamak için). Politikada belirtilen herhangi bir kaynak dosyası bulunamazsa bu hata oluşur.
Teşhis
Hatanın oluştuğu PythonScript politikasını ve geçersiz kaynak URL referansını tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı
Python_script
, geçersiz kaynak URL referansı isepy://myscript.py
şeklindedir:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Başarısız PythonScript politikasında belirtilen kaynak URL referansının, hata mesajında tanımlanan değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politika, kaynak URL referansını hata mesajındaki referansla eşleşen
py://myscript.py
olarak belirtir:<?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>
1. adımda tanımlanan dosyanın, belirli bir API Proxy paketinin parçası olup olmadığını veya kuruluş ya da ortam kapsamında bulunup bulunmadığını kontrol edin.
- Dosyanın belirli bir API Proxy paketinin parçası olup olmadığını kontrol etmek için aşağıdaki adımlardan birini uygulayın:
- Edge kullanıcı arayüzünde bu dosyanın API proxy'sinin Komut Dosyaları bölümünde olup olmadığını kontrol edin.
- API Proxy paketini indirin ve dosya varsa arama yapın.
- Dosya, belirli bir API Proxy paketinin parçası değilse kuruluş veya ortam düzeyinde olup olmadığını kontrol edin. Bu inceleme için Resource Files API'yi kullanabilirsiniz.
Dosya API Proxy'si, kuruluş veya ortam düzeyinde yoksa hatanın nedeni budur.
Yukarıdaki örnekte, geçersiz PythonScript dosya adı myscript.py'dir. Aşağıdaki ekran görüntüsünde, politikada kaynak URL'si olarak belirtilen dosyanın Komut Dosyaları bölümünde görünmediğine dikkat edin. Ayrıca, dosya kuruluş veya ortam düzeyinde yok. Bu nedenle, API Proxy'sinin dağıtımı şu hatayla başarısız olur:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Dosyanın belirli bir API Proxy paketinin parçası olup olmadığını kontrol etmek için aşağıdaki adımlardan birini uygulayın:
Çözünürlük
<ResourceURL>
ve <IncludeURL>
öğelerinde belirtilen PythonScript dosyalarının API Proxy'si, kuruluş veya ortam düzeyinde mevcut olan geçerli bir dosyaya başvurduğundan emin olun.
Yukarıda gösterilen örnek PythonScript politikasını düzeltmek için myscript.py dosyasını API Proxy paketine ekleyin. Aşağıdaki ekran görüntüsünde, <ResourceURL>
ve <IncludeURL>
öğelerinde belirtilen PythonScript dosyalarının, API Proxy paketinin Komut Dosyaları bölümünde göründüğünü görebilirsiniz: