এক্সটেনশন কলআউট নীতি স্থাপনার ত্রুটি সমস্যা সমাধান, এক্সটেনশন কলআউট নীতি স্থাপনার ত্রুটি সমস্যা সমাধান

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

অবৈধ সংযোগকারী ইনস্ট্যান্স

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

Edge UI অথবা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি স্থাপন করতে গেলে এই ত্রুটি বার্তাটি দেখা দেয়:

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

ত্রুটির বার্তার উদাহরণ

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

ত্রুটির স্ক্রিনশটের উদাহরণ

অবৈধ কানেক্টর ইনস্ট্যান্স ত্রুটির বার্তা

কারণ

ExtensionCallout পলিসিতে থাকা <Connector> এলিমেন্টটি অনুপস্থিত থাকলে অথবা এর মান খালি রাখলে এই ত্রুটিটি ঘটে।

রোগ নির্ণয়

  1. এরর মেসেজ থেকে ExtensionCallout পলিসির নামটি শনাক্ত করুন। উদাহরণস্বরূপ, নিচের এররটিতে ExtensionCallout পলিসির নামটি হলো Extension Callout-1 :

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. ব্যর্থ হওয়া ExtensionCallout পলিসি XML পরীক্ষা করুন এবং যাচাই করুন যে <Connector> এলিমেন্টটি উপস্থিত আছে এবং খালি নয়। উদাহরণস্বরূপ, নীচের পলিসিতে <Connector> এলিমেন্টটি খালি এবং এতে এক্সটেনশনের নামটি নেই:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
        <DisplayName>Extension Callout-1</DisplayName>
        <Connector></Connector>
        <Action>downloadFile</Action>
        <Input><![CDATA[
             {}
         ]]></Input>
        <Output>context-variable-name</Output>
    </ConnectorCallout>

<Connector> এলিমেন্টটি খালি থাকায় এপিআই প্রক্সির ডেপ্লয়মেন্ট ব্যর্থ হয়।

সমাধান

নিশ্চিত করুন যে এক্সটেনশন কলআউট পলিসির <Connector> উপাদানের মান সর্বদা নির্দিষ্ট করা থাকে এবং তা প্রতিষ্ঠানে তৈরি করা প্রকৃত এক্সটেনশনের নামের সাথে মেলে।

উপরে দেখানো উদাহরণ ExtensionCallout পলিসিটি সংশোধন করতে, আপনি <Connector> এলিমেন্টটিকে সেই এক্সটেনশনের নামে সেট করতে পারেন যা এপিআই প্রক্সিটি ডেপ্লয় করা হচ্ছে এমন নির্দিষ্ট এনভায়রনমেন্টে বিদ্যমান।

এক্সটেনশনের নাম নির্ধারণ করতে, Edge UI-তে আপনি Admin > Extensions- এ যেতে পারেন। সেখানে আপনার প্রতিষ্ঠানের সমস্ত এক্সটেনশনের নাম দেখানো হবে। এক্সটেনশনের নামটি <Connector> এলিমেন্টে সেট করতে হবে।

Edge UI-তে সমস্ত এক্সটেনশনের নাম দেখুন।

নিচে <Connector> এলিমেন্টে এক্সটেনশন নামটি সঠিকভাবে সেট করা একটি উদাহরণ দেওয়া হলো:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

ConnectorInstanceDoesNotExists

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

Edge UI অথবা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি স্থাপন করতে গেলে এই ত্রুটি বার্তাটি দেখা দেয়:

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

ত্রুটির বার্তার উদাহরণ

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

ত্রুটির স্ক্রিনশটের উদাহরণ

কানেক্টর ইনস্ট্যান্স বিদ্যমান নেই ত্রুটি বার্তা

কারণ

এই ত্রুটিটি ঘটে যদি ExtensionCallout পলিসির <Connector> এলিমেন্টটি এমন কোনো নামে সেট করা হয়, যা এপিআই প্রক্সিটি স্থাপন করা হচ্ছে এমন পরিবেশে বিদ্যমান নেই।

রোগ নির্ণয়

  1. ExtensionCallout পলিসির নাম, ExtensionCallout পলিসির <Connector> এলিমেন্টে ব্যবহৃত অবৈধ এক্সটেনশনের নাম এবং যে এনভায়রনমেন্টে ত্রুটিটি ঘটেছে, তা শনাক্ত করুন। আপনি এই সমস্ত বিষয় ত্রুটির বার্তাতেই খুঁজে পাবেন।

    উদাহরণস্বরূপ, নিম্নলিখিত ত্রুটিতে, ExtensionCallout পলিসির নাম হল Extension Callout-1, এক্সটেনশনের d নাম হল cloud_storage এবং এনভায়রনমেন্টের নাম হল test :

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. ব্যর্থ হওয়া ExtensionCallout পলিসি XML-টি পরীক্ষা করুন এবং যাচাই করুন যে <Connector> এলিমেন্টের জন্য নির্দিষ্ট করা এক্সটেনশন নামটি এরর মেসেজে থাকা তথ্যের সাথে মেলে কি না।

    এই উদাহরণে, <Connector> এলিমেন্টে নির্দিষ্ট করা এক্সটেনশন নামটি হলো cloud_storage :

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage</Connector>
            <Action>downloadFile</Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
  3. ধাপ #১-এ নির্ধারিত এনভায়রনমেন্টে এক্সটেনশন নামটি তৈরি হয়েছে কিনা তা যাচাই করুন।

    Edge UI-তে, Admin > Extensions- এ যান এবং পরীক্ষা করে দেখুন যে এক্সটেনশনটি বিদ্যমান আছে কিনা এবং ExtensionCallout পলিসির <Connector> এলিমেন্টে নির্দিষ্ট করা নামের সাথে এর নামটি মেলে কিনা।

    নীচের স্ক্রিনশটে লক্ষ্য করুন যে cloud_storage_ext এক্সটেনশনটি বিদ্যমান, কিন্তু এটি উপরে দেখানো উদাহরণ ExtensionCallout পলিসিতে নির্দিষ্ট করা <Connector> এলিমেন্টের সাথে মেলে না:

    Edge UI-তে সমস্ত এক্সটেনশনের নাম দেখুন।

    যেহেতু <Connector> এলিমেন্টে নির্দিষ্ট করা এক্সটেনশন নামটি বিদ্যমান নেই, তাই আপনি ডিপ্লয়মেন্ট ত্রুটিটি পাচ্ছেন:

    In Extension Callout-1: Connector cloud_storage does not exist in environment test.

সমাধান

নিশ্চিত করুন যে ExtensionCallout পলিসির <Connector> এলিমেন্টে নির্দিষ্ট করা এক্সটেনশনটি তৈরি করা হয়েছে এবং নামটি সঠিকভাবে উল্লেখ করা হয়েছে।

এক্সটেনশনটি কীভাবে তৈরি করতে হয়, সে সম্পর্কে তথ্যের জন্য “টিউটোরিয়াল: এক্সটেনশন ব্যবহার” দেখুন।

উপরের উদাহরণটি ঠিক করতে, নামটি এমনভাবে পরিবর্তন করুন যাতে এটি প্রকৃত এক্সটেনশনের সাথে মিলে যায়:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

অবৈধ ক্রিয়া

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

Edge UI অথবা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি স্থাপন করতে গেলে এই ত্রুটি বার্তাটি দেখা দেয়:

Error Saving Revision revision_number
In policy_name: Action must not be empty.

ত্রুটির বার্তার উদাহরণ

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

ত্রুটির স্ক্রিনশটের উদাহরণ

অবৈধ অ্যাকশন ত্রুটি বার্তা

কারণ

ExtensionCallout পলিসিতে <Action> এলিমেন্টটি অনুপস্থিত থাকলে বা এর মান খালি রাখলে এই ত্রুটিটি ঘটে।

রোগ নির্ণয়

  1. ExtensionCallout পলিসির নামটি শনাক্ত করুন। আপনি এই তথ্যটি এরর মেসেজে খুঁজে পেতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত এররটিতে, ExtensionCallout পলিসির নামটি হলো Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. ব্যর্থ হওয়া ExtensionCallout পলিসি XML-টি পরীক্ষা করুন এবং <Action> এলিমেন্টে অ্যাকশন নির্দিষ্ট করা আছে কিনা তা যাচাই করুন। যদি <Action> এলিমেন্টটি অনুপস্থিত থাকে বা খালি থাকে, তাহলে সেটিই ত্রুটির কারণ।

    এই উদাহরণে, <Action> এলিমেন্টটি খালি:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage_ext</Connector>
            <Action></Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>

সমাধান

ExtensionCallout পলিসিতে <Action> এলিমেন্টটি যেন সর্বদা নির্দিষ্ট থাকে এবং খালি না থাকে, তা নিশ্চিত করুন।

কীভাবে একটি এক্সটেনশন তৈরি করতে হয় এবং সঠিক <Action> এলিমেন্টের সাথে পলিসিতে কীভাবে এটি ব্যবহার করতে হয়, সে সম্পর্কে তথ্যের জন্য "টিউটোরিয়াল: এক্সটেনশন ব্যবহার" দেখুন।

উপরের সমস্যাটি সমাধান করতে, এক্সটেনশনটির জন্য সঠিক অ্যাকশনটি নির্দিষ্ট করুন:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

পোস্টক্লায়েন্টফ্লোতে এক্সটেনশনের অনুমতি দিন

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

Edge UI অথবা Edge ম্যানেজমেন্ট API-এর মাধ্যমে API প্রক্সি স্থাপন করতে গেলে এই ত্রুটি বার্তাটি দেখা দেয়:

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

ত্রুটির বার্তার উদাহরণ

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

ত্রুটির স্ক্রিনশটের উদাহরণ

পোস্ট ক্লায়েন্ট ফ্লোতে এক্সটেনশন অনুমোদনের ত্রুটি বার্তা

কারণ

PostClient ফ্লো-তে ExtensionCallout পলিসি থাকা নিষিদ্ধ। যদি কোনো PostClient ফ্লো-তে ExtensionCallout পলিসি রাখা হয়, তাহলে এই ত্রুটির কারণে এপিআই প্রক্সির ডেপ্লয়মেন্ট ব্যর্থ হয়।

রোগ নির্ণয়

  1. ExtensionCallout পলিসির নামটি শনাক্ত করুন। আপনি এই তথ্যটি এরর মেসেজে খুঁজে পেতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত এররটিতে, ExtensionCallout পলিসির নামটি হলো Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. যে নির্দিষ্ট এপিআই প্রক্সিতে ব্যর্থতা ঘটেছে, তার সমস্ত এন্ডপয়েন্টের সমস্ত পোস্টক্লায়েন্ট ফ্লো পরীক্ষা করুন। অনুগ্রহ করে "ফ্লো ব্যবহার করে একটি প্রক্সি কীভাবে কাজ করে তা নিয়ন্ত্রণ করা" নিবন্ধটি দেখুন।

    যদি আপনি লক্ষ্য করেন যে ExtensionCallout পলিসিটি (যা ধাপ #১-এ নির্ধারিত) PostClient ফ্লো-তে রাখা হয়েছে, তাহলে সেটাই ত্রুটির কারণ।

    উদাহরণস্বরূপ, নিম্নলিখিত PostClient Flow-টিতে ExtensionCallout Policy রয়েছে:

        ...
        <PostClientFlow>
                <Request/>
                <Response>
                    <Step>
                        <Name>Extension-Callout-1</Name>
                    </Step>
                </Response>
            </PostClientFlow>
        ...

সমাধান

নিশ্চিত করুন যে ExtensionCallout পলিসিটি PostClient ফ্লো-তে স্থাপন করা হয়নি।

উপরে উল্লিখিত সমস্যাটি সমাধান করতে, আপনার ExtensionCallout পলিসিটি অন্য কোনো ফ্লো-তে স্থানান্তর করা উচিত।

...
<PreFlow name="PreFlow">
    <Request/>
    <Response>
        <Step>
            <Name>Extension-Callout-1</Name>
        </Step>
    </Response>
</PreFlow>
...