PythonScript नीति के डिप्लॉयमेंट से जुड़ी गड़बड़ी की समस्या हल करना

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

InvalidResourceUrlFormat

गड़बड़ी का मैसेज

Edge के यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. ऐसा गड़बड़ी के इस मैसेज के साथ किया जा सकता है:

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.

स्क्रीनशॉट का उदाहरण

वजह

अगर संसाधन यूआरएल का फ़ॉर्मैट, <ResourceURL> या <IncludeURL> एलिमेंट में बताया गया है PythonScript नीति अमान्य होने पर, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

सही फ़ॉर्मैट नीचे दिखाया गया है:

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

उदाहरण के लिए, अगर <ResourceURL> एलिमेंट को नीचे दिखाए गए तरीके से बताया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता, क्योंकि यह ज़रूरी पैटर्न का पालन नहीं करता:

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

संक्रमण की जांच

  1. PythonScript नीति में इस्तेमाल किए गए अमान्य संसाधन यूआरएल फ़ॉर्मैट की पहचान करें. आपको यह जानकारी गड़बड़ी के मैसेज से मिल सकती है. उदाहरण के लिए, इस गड़बड़ी में, रिसॉर्स के यूआरएल का अमान्य फ़ॉर्मैट py:myscript.py है:

    Invalid resource url format. Resource url is py:myscript.py.
    
  2. उस खास एपीआई प्रॉक्सी में, PythonScript की सभी नीतियों की जांच करें जहां गड़बड़ी हुई है. अगर ऐसी कोई PythonScript नीति है जिसमें <ResourceURL> या <IncludeURL> एलिमेंट में बताए गए रिसॉर्स का यूआरएल, ऊपर दिए गए चरण #1 में बताई गई अमान्य एंट्री से मैच होता है, तो गड़बड़ी की वजह यही है.

    उदाहरण के लिए, यह नीति, संसाधन के यूआरएल को 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 मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. ऐसा गड़बड़ी के इस मैसेज के साथ किया जा सकता है:

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 कोड उपलब्ध कराना. अगर नीति में बताई गई कोई संसाधन फ़ाइल नहीं मिलती, तो यह गड़बड़ी दिखती है.

संक्रमण की जांच

  1. उस PythonScript नीति की पहचान करें जहां गड़बड़ी हुई थी और अमान्य संसाधन यूआरएल का रेफ़रंस दिया गया है. आपको यह जानकारी गड़बड़ी के मैसेज से मिल सकती है. उदाहरण के लिए, नीचे दी गई गड़बड़ी में, नीति का नाम Python_script है और अमान्य रिसॉर्स यूआरएल का रेफ़रंस py://myscript.py है:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    
  2. पुष्टि करें कि PythonScript नीति में बताए गए संसाधन यूआरएल का रेफ़रंस, गड़बड़ी के मैसेज (ऊपर दिया गया चरण #1) में दी गई वैल्यू से मेल खाता है. उदाहरण के लिए, नीचे दी गई नीति, संसाधन के यूआरएल का रेफ़रंस 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>
    
  3. देखें कि चरण #1 फ़ाइल में पहचानी गई फ़ाइल, किसी खास एपीआई प्रॉक्सी बंडल का हिस्सा है या नहीं या वह संगठन या एनवायरमेंट के दायरे में मौजूद है.

    1. यह देखने के लिए कि फ़ाइल किसी खास एपीआई प्रॉक्सी बंडल का हिस्सा है या नहीं, नीचे दिया गया कोई एक तरीका अपनाएं:
      1. Edge यूज़र इंटरफ़ेस (यूआई) में, देखें कि यह फ़ाइल, एपीआई प्रॉक्सी के स्क्रिप्ट सेक्शन में है या नहीं.
      2. एपीआई प्रॉक्सी बंडल डाउनलोड करें और अगर फ़ाइल मौजूद है, तो खोजें.
    2. अगर फ़ाइल किसी खास एपीआई प्रॉक्सी बंडल का हिस्सा नहीं है, तो देखें कि वह संगठन या एनवायरमेंट के लेवल पर मौजूद है या नहीं. इस जांच के लिए 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 फ़ाइलें, एपीआई प्रॉक्सी बंडल के स्क्रिप्ट सेक्शन में दिख रही हैं: