PythonScript নীতি স্থাপনার ত্রুটি সমস্যা সমাধান

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

অবৈধ রিসোর্স ইউআরএল ফরম্যাট

ত্রুটির বার্তা

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> এলিমেন্টটি নিচে দেখানো অনুযায়ী নির্দিষ্ট করা হয়, তাহলে এপিআই প্রক্সির ডেপ্লয়মেন্ট ব্যর্থ হয়, কারণ এটি প্রয়োজনীয় প্যাটার্ন অনুসরণ করে না:

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

রোগ নির্ণয়

  1. PythonScript পলিসিতে ব্যবহৃত অবৈধ রিসোর্স ইউআরএল ফরম্যাটটি শনাক্ত করুন। আপনি এরর মেসেজ থেকে এই তথ্যটি খুঁজে পেতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত এররটিতে, অবৈধ রিসোর্স ইউআরএল ফরম্যাটটি হলো py:myscript.py :

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

    উদাহরণস্বরূপ, নিম্নলিখিত পলিসিটি রিসোর্স URL হিসেবে 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>

অবৈধ রিসোর্স ইউআরএল রেফারেন্স

ত্রুটির বার্তা

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

    যদি ফাইলটি এপিআই প্রক্সি, অর্গানাইজেশন বা এনভায়রনমেন্ট লেভেলে বিদ্যমান না থাকে, তাহলে সেটাই ত্রুটির কারণ।

    উপরের উদাহরণে, অবৈধ PythonScript ফাইলের নাম হলো myscript.py। নিচের স্ক্রিনশটে লক্ষ্য করুন যে, পলিসিতে রিসোর্স ইউআরএল হিসেবে নির্দিষ্ট করা ফাইলটি স্ক্রিপ্টস সেকশনে দেখা যাচ্ছে না। এছাড়াও, ফাইলটি অর্গানাইজেশন বা এনভায়রনমেন্ট লেভেলেও বিদ্যমান নেই। তাই, এপিআই প্রক্সির ডেপ্লয়মেন্ট নিম্নলিখিত এরর সহ ব্যর্থ হয়:

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

সমাধান

নিশ্চিত করুন যে <ResourceURL> এবং <IncludeURL> এলিমেন্টগুলিতে নির্দিষ্ট করা PythonScript ফাইলগুলি API Proxy, organization, বা environment লেভেলে বিদ্যমান একটি বৈধ ফাইলকে নির্দেশ করে।

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