মূল মান মানচিত্র অপারেশন রানটাইম ত্রুটি সমস্যা সমাধান, মূল মান মানচিত্র অপারেশন রানটাইম ত্রুটি সমস্যা সমাধান

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

অসমর্থিত অপারেশন ব্যতিক্রম

ত্রুটি কোড

java.lang.UnsupportedOperationException

ত্রুটি প্রতিক্রিয়া বডি

{
   "fault":{
      "faultstring":"java.lang.UnsupportedOperationException",
      "detail":{
         "errorcode":"Internal Server Error"
      }
   }
}

কারণ

মূল মান মানচিত্র অপারেশন নীতিতে mapIdentifier বৈশিষ্ট্যটি একটি খালি স্ট্রিং-এ সেট করা থাকলে এই ত্রুটি ঘটে৷

রোগ নির্ণয়

  1. নির্দিষ্ট API প্রক্সিতে সমস্ত মূল মান মানচিত্র অপারেশন নীতিগুলি পরীক্ষা করুন যেখানে ব্যর্থতা ঘটেছে৷ যদি কোনো মূল মান মানচিত্র অপারেশন নীতি থাকে যেখানে mapIdentifier বৈশিষ্ট্য একটি খালি স্ট্রিং হিসাবে সেট করা হয়, তাহলে এটি ত্রুটির কারণ।

    উদাহরণস্বরূপ, নিম্নলিখিত মূল মান মানচিত্র অপারেশন নীতিতে একটি খালি mapIdentifier আছে:

    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="StoreKvm" mapIdentifier="">
        <DisplayName>StoreKvm</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <Put override="true">
            <Key>
                <Parameter ref="request.queryparam.key"/>
            </Key>
            <Value ref="request.queryparam.value"/>
        </Put>
        <Scope>apiproxy</Scope>
    </KeyValueMapOperations>
    

রেজোলিউশন

নিশ্চিত করুন অ্যাট্রিবিউট mapIdentifier মূল মান মানচিত্র অপারেশন নীতিতে একটি বৈধ কী মান মানচিত্রে সেট করা আছে।

উপরে দেখানো উদাহরণ নীতি সংশোধন করতে, আপনি একটি বিদ্যমান কী মান মানচিত্রের মানচিত্র UserLocationMapmapIdentifier নির্দিষ্ট করতে পারেন।

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="StoreKvm" mapIdentifier="UserLocationMap">
    <DisplayName>StoreKvm</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <Put override="true">
        <Key>
            <Parameter ref="request.queryparam.key"/>
        </Key>
        <Value ref="request.queryparam.value"/>
    </Put>
    <Scope>apiproxy</Scope>
</KeyValueMapOperations>

সেট ভেরিয়েবল ব্যর্থ

ত্রুটি কোড

steps.keyvaluemapoperations.SetVariableFailed

ত্রুটি প্রতিক্রিয়া বডি

{
   "fault":{
      "faultstring":"Failed to set variable variable_name in KeyValueMapStepDefinition policy_name",
      "detail":{
         "errorcode":"steps.keyvaluemapoperations.SetVariableFailed"
      }
   }
}

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

{
   "fault":{
      "faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM",
      "detail":{
         "errorcode":"steps.keyvaluemapoperations.SetVariableFailed"
      }
   }
}

কারণ

এই ত্রুটিটি ঘটে যদি আপনি একটি এনক্রিপ্ট করা কী মান মানচিত্র থেকে একটি মান পুনরুদ্ধার করার চেষ্টা করেন এবং মানটিকে একটি ভেরিয়েবলে সেট করেন যার নামের উপসর্গ private. . উপসর্গ, যা ডিবাগিংয়ের সময় মৌলিক নিরাপত্তার জন্য প্রয়োজন, API প্রক্সি ট্রেস এবং ডিবাগ সেশন থেকে এনক্রিপ্ট করা মানগুলি লুকিয়ে রাখে।

রোগ নির্ণয়

1. মূল মান মানচিত্র অপারেশন নীতি সনাক্ত করুন যেখানে ত্রুটি ঘটেছে এবং ভেরিয়েবলের নাম যেখানে মান সেট করা যাবে না। আপনি ত্রুটি প্রতিক্রিয়ার faultstring উপাদানে এই দুটি আইটেম খুঁজে পেতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত faultstring -এ, নীতির নাম হল EncryptedKVM এবং ভেরিয়েবল হল myvar :

  "faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM"

1. ব্যর্থ মূল মান মানচিত্র অপারেশন নীতি XML-এ, যাচাই করুন যে <Get> উপাদানের assignTo অ্যাট্রিবিউটে উল্লেখিত ভেরিয়েবলের নাম ফল্ট স্ট্রিং-এ চিহ্নিত পরিবর্তনশীল নামের সাথে মেলে (উপরের ধাপ #1)। উদাহরণ স্বরূপ, নিম্নলিখিত কী ভ্যালু ম্যাপ অপারেশন নীতি <Get> এলিমেন্টে myvar নামের একটি ভেরিয়েবল নির্দিষ্ট করে, যা faultstring -এ যা আছে তার সাথে মেলে:

  <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="testEncrypted">
      <DisplayName>KeyValueMapOperations-1</DisplayName>
      <Properties/>
      <ExclusiveCache>false</ExclusiveCache>
      <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
      <Get assignTo="myvar" index="1">
          <Key>
              <Parameter>foo</Parameter>
          </Key>
      </Get>
      <Scope>environment</Scope>
  </KeyValueMapOperations>
  1. mapIdentifier অ্যাট্রিবিউটে উল্লেখ করা মূল মান মানচিত্রটি একটি এনক্রিপ্ট করা KVM কিনা তা পরীক্ষা করুন। KVM পরিবেশের সুযোগে এনক্রিপ্ট করা থাকলে, আপনি যাচাই করতে পারেন যে এটি Edge UI-তে এনক্রিপ্ট করা হয়েছে। অন্যথায়, যদি এটি সংস্থা বা এপিপ্রক্সি স্কোপে তৈরি করা হয়, তাহলে এটি এনক্রিপ্ট করা আছে কিনা তা যাচাই করতে আপনাকে ম্যানেজমেন্ট API ব্যবহার করতে হবে। এছাড়াও KVMs পরিচালনা এবং ব্যবহার দেখুন।

    এজ UI-তে একটি পরিবেশ স্কোপড KVM এনক্রিপ্ট করা হয়েছে কিনা তা পরীক্ষা করতে:

    1. এজ UI-তে, বাম নেভিগেশন মেনুতে অ্যাডমিন ক্লিক করুন।
    2. Environments এ ক্লিক করুন।
    3. মূল মান মানচিত্র ক্লিক করুন.
    4. আপনি ব্যবহার করতে চান মূল মান মানচিত্র খুঁজুন.
    5. মানের তালিকা প্রসারিত করতে নামের বাম দিকের তীরটিতে ক্লিক করুন।
    6. এনক্রিপ্ট করা কী মান মানচিত্রগুলি UI (*****) তে তারকাচিহ্নের সাথে মুখোশযুক্ত মানগুলি প্রদর্শন করে যেমনটি এনক্রিপ্ট করা কেভিএম সম্পর্কে দেখানো হয়েছে।

    প্রতিষ্ঠান, পরিবেশ বা এপিপ্রক্সি স্তরে একটি KVM স্কোপ এনক্রিপ্ট করা হয়েছে কিনা তা পরীক্ষা করতে, Management APIs ব্যবহার করুন। আপনি API ব্যবহার করলে, একটি নমুনা প্রতিক্রিয়া যা এনক্রিপ্ট করা সেটিং এবং মানের জন্য তারকাচিহ্ন উভয়ই দেখায় তা এইরকম দেখায়:

    {
      "encrypted": true,
      "entry": [
        {
          "name": "foo",
          "value": "*****"
        }
      ],
      "name": "encrypted"
    }
    
  2. যদি মূল মান মানচিত্রটি একটি এনক্রিপ্ট করা KVM হয় এবং <Get> উপাদানটির assignTo বৈশিষ্ট্যে ব্যবহৃত পরিবর্তনশীল নামটির প্রাইফিক্স private না থাকে। তারপর যে ত্রুটি জন্য কারণ.

    উপরে দেখানো মূল মান মানচিত্র অপারেশন নীতির উদাহরণে, কী মান মানচিত্র testEncrypted এনক্রিপ্ট করা হয়েছে এবং ভেরিয়েবল নামের myvar প্রিফিক্স private নেই। তাই আপনি ত্রুটি কোড পাবেন:

    steps.keyvaluemapoperations.SetVariableFailed
    

রেজোলিউশন

নিশ্চিত করুন যে পরিবর্তনশীল নামের প্রিফিক্স private. কী ভ্যালু ম্যাপ অপারেশন পলিসিতে <Get> এলিমেন্টের assignTo অ্যাট্রিবিউটে যদি ব্যবহৃত কী ভ্যালু ম্যাপটি এনক্রিপ্ট করা থাকে।

উপরে দেখানো কী ভ্যালু ম্যাপ অপারেশন নীতির উদাহরণ সংশোধন করতে, আপনি assignTo এর মানটিকে private.myvar এ পরিবর্তন করতে পারেন:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="testEncrypted">
    <DisplayName>KeyValueMapOperations-1</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <Get assignTo="private.myvar" index="1">
        <Key>
            <Parameter>foo</Parameter>
        </Key>
    </Get>
    <Scope>environment</Scope>
</KeyValueMapOperations>