PythonScript নীতি প্রয়োগ সংক্রান্ত সমস্যার সমাধান করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

InvalidResourceUrlFormat

সমস্যা সংক্রান্ত মেসেজ

Edge UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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> এলিমেন্টের মধ্যে নির্দিষ্ট করা রিসোর্স URL-এর ফর্ম্যাট ভুল হলে, API প্রক্সি ডেপ্লয় করা যায় না।

সঠিক ফর্ম্যাটটি নিচে দেখানো হল:

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

যেমন, <ResourceURL> এলিমেন্টটি নিচে দেখানো উপায়ে নির্দিষ্ট করা হলে, API প্রক্সি ডিপ্লয় করা যায় না কারণ এটি প্রয়োজনীয় প্যাটার্ন মেনে চলে না:

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

ডায়াগনসিস

  1. PythonScript নীতিতে ব্যবহৃত ভুল রিসোর্স URL ফর্ম্যাট শনাক্ত করুন। আপনি সমস্যার মেসেজ থেকে এই তথ্য পেতে পারেন। যেমন, নিচে দেখানো সমস্যার ক্ষেত্রে, রিসোর্স URL-এর ভুল ফর্ম্যাট হল py:myscript.py:

    Invalid resource url format. Resource url is py:myscript.py.
  2. যেখানে সমস্যা হয়েছে সেই নির্দিষ্ট API প্রক্সিতে সব PythonScript নীতি পরীক্ষা করুন। যদি কোনও PythonScript নীতি থাকে যেখানে <ResourceURL> বা <IncludeURL> এলিমেন্টে উল্লেখ করা রিসোর্স URL উপরে #১ ধাপে শনাক্ত করা ভুল এন্ট্রির সাথে ম্যাচ করে, তাহলে সেটিই হল সমস্যার কারণ।

    যেমন, নিম্নলিখিত নীতিতে রিসোর্স URL হিসেবে py:myscript.py উল্লেখ করা হয়েছে, যা সমস্যার মেসেজে দেখানো URL-এর সাথে মিলে যায়:

    <?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 py:myscript.py হিসেবে নির্দিষ্ট করা হয়েছে, যা সঠিক নয়, তাই API প্রক্সি ডেপ্লয় করা যায়নি এবং এই সমস্যা হয়েছে:

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

রেজোলিউশন

PythonScript নীতির <ResourceURL> এলিমেন্টে উল্লেখ করা রিসোর্স URL ফর্ম্যাট সঠিক কিনা তা নিশ্চিত করুন। যেমন:

<?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 UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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 ফাইলের দিকে নির্দেশ করে যা নেই, তাহলে API প্রক্সি ডিপ্লয় করা যাবে না। আপনি যদি নিজের লোকাল মেশিন থেকে কোনও প্রক্সি বান্ডেল ডিপ্লয় করেন, তাহলে PythonScript সোর্স ফাইল অবশ্যই /apiproxy/resources/py(API প্রক্সি স্কোপে) স্টোর করতে হবে।

Edge UI-তে, API প্রক্সি এডিটরের নেভিগেটর প্যানেলের স্ক্রিপ্ট বিভাগে PythonScript সোর্স ফাইলগুলি py-এর অধীনে দেখা যায় যেমনটি নিচে দেখানো হয়েছে:

এছাড়াও, আপনি সংস্থা ও এনভায়রনমেন্ট লেভেল রিপোজিটরিতে রিসোর্স ফাইল স্টোর করতে পারেন (যেমন, কোনও সংস্থা বা এনভায়রনমেন্টের সমস্ত প্রক্সির জন্য PythonScript কোড উপলভ্য করতে)। নীতিতে উল্লেখ করা কোনও রিসোর্স ফাইল খুঁজে না পাওয়া গেলে, এই সমস্যাটি হয়।

ডায়াগনসিস

  1. PythonScript নীতিতে যেখানে সমস্যা হয়েছে এবং ভুল রিসোর্স URL রেফারেন্স চিহ্নিত করুন। আপনি সমস্যার মেসেজ থেকে এই তথ্য পেতে পারেন। যেমন, নিম্নলিখিত সমস্যার ক্ষেত্রে, নীতির নাম হল Python_script এবং ভুল রিসোর্স URL রেফারেন্স হল py://myscript.py:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
  2. ব্যর্থ PythonScript নীতিতে উল্লেখ করা রিসোর্স URL রেফারেন্স, সমস্যার মেসেজে (উপরে #১ ধাপ) শনাক্ত করা ভ্যালুর সাথে মিলছে কিনা তা যাচাই করুন। যেমন, নিম্নলিখিত নীতিতে রিসোর্স URL রেফারেন্স হিসেবে 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. ধাপ #১-এ শনাক্ত করা ফাইলটি নির্দিষ্ট API প্রক্সি বান্ডেলের অংশ কিনা অথবা সেটি সংস্থা বা এনভায়রনমেন্ট স্কোপে আছে কিনা তা চেক করুন।

    1. ফাইলটি নির্দিষ্ট API প্রক্সি বান্ডেলের অংশ কিনা তা চেক করতে, নিচের ধাপগুলির মধ্যে একটি অনুসরণ করুন:
      1. Edge UI-তে, এই ফাইলটি API প্রক্সির স্ক্রিপ্ট বিভাগে আছে কিনা তা চেক করুন।
      2. API Proxy বান্ডেল ডাউনলোড করুন এবং ফাইলটি আছে কিনা তা সার্চ করুন।
    2. ফাইলটি নির্দিষ্ট API প্রক্সি বান্ডেলের অংশ না হলে, এটি সংস্থা বা এনভায়রনমেন্ট লেভেলে আছে কিনা তা চেক করুন। এই তদন্তের জন্য আপনি রিসোর্স ফাইল API ব্যবহার করতে পারেন।

    API প্রক্সি, সংস্থা বা এনভায়রনমেন্ট লেভেলে ফাইলটি না থাকলে, এটিই সমস্যার কারণ।

    উপরের উদাহরণে, ভুল PythonScript ফাইলের নাম হল myscript.py. নিচের স্ক্রিনশটে লক্ষ্য করুন যে নীতিতে রিসোর্স URL হিসেবে নির্দিষ্ট করা ফাইলটি স্ক্রিপ্ট বিভাগে দেখা যাচ্ছে না। এছাড়াও, ফাইলটি সংস্থা বা এনভায়রনমেন্ট লেভেলে নেই। তাই, API Proxy-এর ডিপ্লয়মেন্ট এই সমস্যার কারণে ব্যর্থ হয়:

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

রেজোলিউশন

<ResourceURL> ও <IncludeURL> এলিমেন্টে উল্লেখ করা PythonScript ফাইলগুলি যেন API Proxy, সংস্থা বা এনভায়রনমেন্ট লেভেলে আগে থেকেই থাকা কোনও সঠিক ফাইলকে রেফার করে, তা নিশ্চিত করুন।

উপরে দেখানো PythonScript নীতির উদাহরণটি ঠিক করতে, API Proxy বান্ডেলে myscript.py ফাইলটি যোগ করুন। নিচের স্ক্রিনশটে আপনি দেখতে পাবেন যে <ResourceURL> এবং <IncludeURL> এলিমেন্টে নির্দিষ্ট করা PythonScript ফাইলগুলি API প্রক্সি বান্ডেলের স্ক্রিপ্ট বিভাগে দেখা যাচ্ছে: