Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. info
InvalidResourceUrlFormat
गड़बड़ी का मैसेज
Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
गड़बड़ी के मैसेज का उदाहरण
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
उदाहरण के तौर पर दिया गया स्क्रीनशॉट

वजह
अगर PythonScript नीति के <ResourceURL> या <IncludeURL> एलिमेंट में दिए गए संसाधन यूआरएल का फ़ॉर्मैट अमान्य है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.
सही फ़ॉर्मैट यहां दिखाया गया है:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
उदाहरण के लिए, अगर <ResourceURL> एलिमेंट को नीचे दिखाए गए तरीके से तय किया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा. ऐसा इसलिए, क्योंकि यह ज़रूरी पैटर्न के मुताबिक नहीं है:
<ResourceURL>py:myscript.py</ResourceURL>
संक्रमण की जांच
PythonScript नीति में इस्तेमाल किए गए अमान्य संसाधन यूआरएल फ़ॉर्मैट की पहचान करें. यह जानकारी, गड़बड़ी के मैसेज में देखी जा सकती है. उदाहरण के लिए, यहां दी गई गड़बड़ी में, संसाधन के यूआरएल का अमान्य फ़ॉर्मैट
py:myscript.pyहै:Invalid resource url format. Resource url is py:myscript.py.
उस एपीआई प्रॉक्सी में PythonScript से जुड़ी सभी नीतियों की जांच करें जहां गड़बड़ी हुई है. अगर कोई ऐसी PythonScript नीति है जिसमें
<ResourceURL>या<IncludeURL>एलिमेंट में दिया गया संसाधन यूआरएल, ऊपर दिए गए पहले चरण में पहचानी गई अमान्य एंट्री से मेल खाता है, तो गड़बड़ी की वजह यही है.उदाहरण के लिए, यहां दी गई नीति में संसाधन के यूआरएल को
py:myscript.pyके तौर पर बताया गया है. यह यूआरएल, गड़बड़ी के मैसेज में मौजूद यूआरएल से मेल खाता है:<?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>
संसाधन के यूआरएल को
py:myscript.pyके तौर पर तय किया गया है, जो अमान्य है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका. गड़बड़ी का मैसेज यह है:Invalid resource url format. Resource url is py:myscript.py.
रिज़ॉल्यूशन
पक्का करें कि PythonScript नीति के <ResourceURL> एलिमेंट में दिया गया संसाधन यूआरएल फ़ॉर्मैट मान्य हो. उदाहरण के लिए:
<?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
गड़बड़ी का मैसेज
Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
गड़बड़ी के मैसेज का उदाहरण
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
उदाहरण के तौर पर दिया गया स्क्रीनशॉट

वजह
अगर <ResourceURL> और <IncludeURL> एलिमेंट, ऐसी PythonScript फ़ाइल को रेफ़र करते हैं जो मौजूद नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.
अगर आपको अपनी लोकल मशीन से कोई प्रॉक्सी बंडल डिप्लॉय करना है, तो PythonScript के सोर्स फ़ाइलों को /apiproxy/resources/py में सेव करना होगा(एपीआई प्रॉक्सी स्कोप में).
Edge के यूज़र इंटरफ़ेस (यूआई) में, PythonScript की सोर्स फ़ाइलें, एपीआई प्रॉक्सी एडिटर के नेविगेटर पैन के स्क्रिप्ट सेक्शन में py के नीचे दिखती हैं. जैसा कि यहां दिखाया गया है:

संगठन और एनवायरमेंट लेवल की रिपॉज़िटरी में भी संसाधन फ़ाइलें सेव की जा सकती हैं. उदाहरण के लिए, किसी संगठन या एनवायरमेंट में मौजूद सभी प्रॉक्सी के लिए PythonScript कोड उपलब्ध कराने के लिए. अगर नीति में बताई गई कोई भी संसाधन फ़ाइल नहीं मिलती है, तो यह गड़बड़ी होती है.
संक्रमण की जांच
उस PythonScript नीति की पहचान करें जिसमें गड़बड़ी हुई है. साथ ही, अमान्य संसाधन यूआरएल रेफ़रंस की पहचान करें. यह जानकारी, गड़बड़ी के मैसेज में देखी जा सकती है. उदाहरण के लिए, यहां दी गई गड़बड़ी में नीति का नाम
Python_scriptहै और अमान्य संसाधन यूआरएल का रेफ़रंसpy://myscript.pyहै:Invalid resource url ref py://myscript.py in policy Python_script in myorg
पुष्टि करें कि PythonScript नीति के उल्लंघन की वजह से अस्वीकार किए गए संसाधन के यूआरएल का रेफ़रंस, गड़बड़ी के मैसेज (ऊपर दिया गया पहला चरण) में बताई गई वैल्यू से मेल खाता हो. उदाहरण के लिए, यहां दी गई नीति में, संसाधन के यूआरएल का रेफ़रंस
py://myscript.pyके तौर पर दिया गया है. यह गड़बड़ी के मैसेज में मौजूद यूआरएल से मेल खाता है:<?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>
देखें कि पहले चरण में पहचानी गई फ़ाइल, किसी खास एपीआई प्रॉक्सी बंडल का हिस्सा है या संगठन या एनवायरमेंट के स्कोप में मौजूद है.
- यह देखने के लिए कि फ़ाइल, किसी एपीआई प्रॉक्सी बंडल का हिस्सा है या नहीं, इनमें से कोई एक तरीका अपनाएं:
- Edge के यूज़र इंटरफ़ेस (यूआई) में जाकर देखें कि यह फ़ाइल, एपीआई प्रॉक्सी के Scripts सेक्शन में मौजूद है या नहीं.
- एपीआई प्रॉक्सी बंडल डाउनलोड करें और देखें कि फ़ाइल मौजूद है या नहीं.
- अगर फ़ाइल, किसी खास एपीआई प्रॉक्सी बंडल का हिस्सा नहीं है, तो देखें कि यह संगठन या एनवायरमेंट लेवल पर मौजूद है या नहीं. इस जांच के लिए, Resource Files API का इस्तेमाल किया जा सकता है.
अगर एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल पर फ़ाइल मौजूद नहीं है, तो यह गड़बड़ी की वजह है.
ऊपर दिए गए उदाहरण में, अमान्य PythonScript फ़ाइल का नाम myscript.py है. नीचे दिए गए स्क्रीनशॉट में देखें कि नीति में रिसॉर्स यूआरएल के तौर पर बताई गई फ़ाइल, स्क्रिप्ट सेक्शन में नहीं दिख रही है. साथ ही, यह फ़ाइल संगठन या एनवायरमेंट लेवल पर भी मौजूद नहीं है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका. गड़बड़ी का मैसेज यह है:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- यह देखने के लिए कि फ़ाइल, किसी एपीआई प्रॉक्सी बंडल का हिस्सा है या नहीं, इनमें से कोई एक तरीका अपनाएं:

रिज़ॉल्यूशन
पक्का करें कि <ResourceURL> और <IncludeURL> एलिमेंट में बताई गई PythonScript फ़ाइलें, एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल पर मौजूद किसी मान्य फ़ाइल से जुड़ी हों.
ऊपर दिखाई गई PythonScript नीति के उदाहरण को ठीक करने के लिए, myscript.py फ़ाइल को एपीआई प्रॉक्सी बंडल में जोड़ें. नीचे दिए गए स्क्रीनशॉट में देखा जा सकता है कि <ResourceURL> और <IncludeURL> एलिमेंट में बताई गई PythonScript फ़ाइलें, एपीआई प्रॉक्सी बंडल के स्क्रिप्ट सेक्शन में दिख रही हैं:
