বার্তা নীতি স্থাপনার ত্রুটি সমস্যা সমাধান বরাদ্দ করুন৷

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

InvalidIndex

ভুল বার্তা

এজ ইউআই বা এজ ম্যানেজমেন্ট এপিআই এর মাধ্যমে এপিআই প্রক্সির স্থাপনা এই ত্রুটি বার্তার সাথে ব্যর্থ হয়:

Error in deployment for environment [environment]
The revision is deployed, but traffic cannot flow.
AssignMessage[policy_name]: index must be greater than zero in [attribute].[index]

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

Error in deployment for environment test.
The revision is deployed, but traffic cannot flow.
AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0

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

কারণ

যদি বরাদ্দ বার্তা নীতির <Copy> এবং/অথবা <Remove> উপাদানগুলিতে নির্দিষ্ট করা সূচকটি 0 বা একটি নেতিবাচক সংখ্যা হয়, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়।

উদাহরণ স্বরূপ, আপনি যদি একই নামের একাধিক ক্যোয়ারী প্যারামিটার পাস করেন, তাহলে আপনি এজ এ ইনডেক্সড ফ্লো ভেরিয়েবল হিসেবে অ্যাক্সেস করতে পারবেন। ধরা যাক আপনি ক্যোয়ারী প্যারামিটার হিসাবে 3 জন শিক্ষার্থীর আইডি পাস করতে চান, তাহলে আপনি এটি নিম্নরূপ করতে পারেন:

https://myorg-test.apigee.net/v1/basepath?school_name=NPS&id=1&id=2&id=3

তারপর, ধরা যাক আপনি নিম্নরূপ বার্তা নীতিতে সূচক নম্বর 0, 1, এবং 2 সহ এই ক্যোয়ারী প্যারামিটারগুলি অ্যাক্সেস করার চেষ্টা করছেন:

id.0
id.1 and
id.2

এই ক্ষেত্রে, প্রক্সির স্থাপনা ব্যর্থ হয় কারণ সূচীটি অবশ্যই 1 দিয়ে শুরু হবে। এর মানে, আপনি "id.1" হিসাবে প্রথম ক্যোয়ারী প্যারামিটার "id=1" অ্যাক্সেস করতে পারবেন। দ্বিতীয় ক্যোয়ারী প্যারামিটার "id=2" অ্যাক্সেস করতে, আপনাকে সূচক 2 অর্থাৎ "id.2" ব্যবহার করতে হবে। একইভাবে, তৃতীয় কোয়েরি প্যারামিটার "id=3" অ্যাক্সেস করতে, আপনি "id.3" ব্যবহার করতে পারেন।

আপনি এখানে আরও তথ্য পেতে পারেন।

রোগ নির্ণয়

  1. অ্যাসাইন বার্তা নীতি সনাক্ত করুন যেখানে ত্রুটি ঘটেছে, বৈশিষ্ট্যের নাম এবং অবৈধ সূচক। আপনি ত্রুটি বার্তা এই সমস্ত আইটেম খুঁজে পেতে পারেন. উদাহরণস্বরূপ, নিম্নলিখিত ত্রুটিতে, নীতির নাম GeneratingGeocodingRequest , বৈশিষ্ট্যের নাম হল id , এবং সূচকটি হল 0 :

    AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0
    
  2. যাচাই করুন যে অ্যাট্রিবিউটের নাম এবং সূচীটি ব্যর্থ অ্যাসাইন মেসেজ পলিসিতে ব্যবহৃত XML অ্যাট্রিবিউটের নাম এবং ত্রুটি বার্তায় চিহ্নিত সূচকের সাথে মেলে (উপরের ধাপ #1)। উদাহরণস্বরূপ, নিম্নলিখিত নীতিটি 0 হিসাবে বৈশিষ্ট্য id এবং সূচককে নির্দিষ্ট করে, যা ত্রুটি বার্তায় যা আছে তার সাথে মেলে:

    <AssignMessage name="GenerateStudentsRequest">
      <AssignTo createNew="true" type="request">StudentsInfoRequest</AssignTo>
      <Copy source="request">
          <QueryParams>
              <QueryParam name="school_name"/>
              <QueryParam name="id.0"/>
              <QueryParam name="id.1"/>
              <QueryParam name="id.2"/>
          </QueryParams>
      </Copy>
    </AssignMessage>
    
  3. যদি নির্দিষ্ট করা সূচকটি 0 বা ঋণাত্মক সংখ্যা হয়, তবে এটি ত্রুটির কারণ।

    উপরে দেখানো বার্তা নীতির উদাহরণে, আপনি সূচক 0 ব্যবহার করে ক্যোয়ারী প্যারামিটার "id" এর প্রথম মান অ্যাক্সেস করার চেষ্টা করছেন। তাই এপিআই প্রক্সির স্থাপনা ত্রুটির সাথে ব্যর্থ হয়:

    AssignMessage[GenerateStudentsRequest]: index must be greater than zero in id.0
    

রেজোলিউশন

অ্যাসাইন মেসেজে, আপনি যখন একাধিক শিরোনাম, ক্যোয়ারী প্যারামিটার বা একই নাম ভাগ করে এমন অন্যান্য পরামিতি অ্যাক্সেস করেন, নিশ্চিত করুন যে সূচকটি সর্বদা শূন্যের চেয়ে বেশি। উদাহরণ স্বরূপ:

<AssignMessage name="GenerateStudentsRequest">
    <AssignTo createNew="true" type="request">StudentsInfoRequest</AssignTo>
    <Copy source="request">
        <QueryParams>
            <QueryParam name="school_name"/>
            <QueryParam name="id.1"/>
            <QueryParam name="id.2"/>
            <QueryParam name="id.3"/>
        </QueryParams>
    </Copy>
</AssignMessage>

অবৈধ ভেরিয়েবল নাম

ভুল বার্তা

এজ ইউআই বা এজ ম্যানেজমেন্ট এপিআই এর মাধ্যমে এপিআই প্রক্সির স্থাপনা এই ত্রুটি বার্তার সাথে ব্যর্থ হয়:

Error Saving Revision [revision_number]
The revision is deployed, but traffic cannot flow. AssignMessage schema validation failed: invalid variable name - null - in assign variable.

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

Error Saving Revision 3
AssignMessage schema validation failed: invalid variable name - null - in assign variable.

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

কারণ

যদি চাইল্ড এলিমেন্ট <Name> খালি থাকে বা <AssignVariable> এলিমেন্টে নির্দিষ্ট করা না থাকে, তাহলে API প্রক্সির ডিপ্লোয়মেন্ট ব্যর্থ হয় কারণ ভ্যালু বরাদ্দ করার জন্য কোন বৈধ পরিবর্তনশীল নাম নেই। একটি বৈধ পরিবর্তনশীল নাম প্রয়োজন.

রোগ নির্ণয়

নির্দিষ্ট API প্রক্সিতে যেখানে ব্যর্থতা ঘটেছে সেখানে সমস্ত অ্যাসাইন বার্তা নীতি পরীক্ষা করুন। যদি কোনো অ্যাসাইন মেসেজ নীতি থাকে যেখানে চাইল্ড এলিমেন্ট <Name> খালি থাকে বা <AssignVariable> এলিমেন্টে নির্দিষ্ট করা না থাকে, তাহলে সেটাই ত্রুটির কারণ।

উদাহরণ 1: নিম্নলিখিত অ্যাসাইন মেসেজ নীতিতে কোনও <Name> উপাদান সংজ্ঞায়িত নেই।

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
    <AssignVariable>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>

উদাহরণ 2: নিম্নলিখিত অ্যাসাইন মেসেজ নীতিতে একটি খালি <Name> উপাদান রয়েছে।

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
    <AssignVariable>
        <Name></Name>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>

রেজোলিউশন

নিশ্চিত করুন যে শিশু উপাদান <Name> সর্বদা নির্দিষ্ট করা থাকে এবং বার্তা নিয়োগ নীতির <AssignVariable> উপাদানের মধ্যে খালি থাকে না। উদাহরণ স্বরূপ:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message-1</DisplayName>
    <Properties/>
        <AssignVariable>
        <Name>appSecret</Name>
        <Value>abcd1234</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" transport="http" type="request">googleBookReq</AssignTo>
</AssignMessage>