500 অভ্যন্তরীণ সার্ভার ত্রুটি - EmptyPath

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

লক্ষণ

ক্লায়েন্ট অ্যাপ্লিকেশনটি এপিআই কলের প্রতিক্রিয়া হিসাবে protocol.http.EmptyPath ত্রুটি কোড সহ 500 Internal Server Error এর একটি HTTP স্ট্যাটাস কোড পায়।

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

ক্লায়েন্ট অ্যাপ্লিকেশনটি নিম্নলিখিত প্রতিক্রিয়া কোডটি পায়:

HTTP/1.1 500 Internal Server Error

এছাড়াও, আপনি নিম্নলিখিত ত্রুটি বার্তাটি দেখতে পারেন:

{
   "fault":{
      "faultstring":"Request path cannot be empty",
      "detail":{
         "errorcode":"protocol.http.EmptyPath"
      }
   }
}

সম্ভাব্য কারণসমূহ

ফ্লো ভ্যারিয়েবল target.url দ্বারা নির্দেশিত ব্যাকএন্ড সার্ভারের রিকোয়েস্ট URL-এ যদি কোনো খালি পাথ থাকে, তাহলে এই ত্রুটিটি ঘটে।

RFC 3986, অনুচ্ছেদ ৩: সিনট্যাক্স কম্পোনেন্টস এবং RFC 3986, অনুচ্ছেদ ৩.৩: পাথ-এর স্পেসিফিকেশন অনুযায়ী:

  1. URI সিনট্যাক্সের নিম্নলিখিত উপাদানগুলো রয়েছে:

            foo://example.com:8042/over/there?name=ferret#nose
            \_/   \______________/\_________/ \_________/ \__/
             |            |            |            |       |
          scheme      authority       path        query   fragment
    
  2. path কম্পোনেন্টটি আবশ্যক এবং এতে অবশ্যই একটি ফরওয়ার্ড স্ল্যাশ ( / ) থাকতে হবে, এমনকি যদি পাথের অংশ হিসেবে অন্য কোনো অক্ষর না-ও থাকে।

সুতরাং, যদি ব্যাকএন্ড সার্ভারের রিকোয়েস্ট URL-এ path কম্পোনেন্ট একেবারেই না থাকে, অর্থাৎ এমনকি একটি ফরওয়ার্ড স্ল্যাশ ( / ) পর্যন্ত না থাকে, তাহলে Apigee Edge 500 Internal Server Error এবং protocol.http.EmptyPath এরর কোড দিয়ে রেসপন্স করে।

উদাহরণস্বরূপ: যদি target.url মান https://www.mocktarget.apigee.net হয়, তাহলে path কারণে এই ত্রুটিটি ঘটে। path উপাদানটি খালি বা অনুপস্থিত।

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
ব্যাকএন্ড সার্ভারের URL (target.url)-এর পাথ খালি। ফ্লো ভ্যারিয়েবল target.url দ্বারা নির্দেশিত ব্যাকএন্ড সার্ভার URL-এর পাথটি খালি। এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:

এপিআই মনিটরিং

পদ্ধতি #১: এপিআই মনিটরিং ব্যবহার করা

এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Apigee Edge UI-তে সাইন ইন করুন ।
  2. যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

  3. Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
  4. সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
  5. সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।

  6. নিচে দেখানো অনুযায়ী, যে সেলটিতে ফল্ট কোড protocol.http.EmptyPath আছে, সেটি নির্বাচন করুন:

  7. ফল্ট কোড protocol.http.EmptyPath সম্পর্কিত তথ্য নিচে দেখানো অনুযায়ী প্রদর্শিত হয়:

  8. ব্যর্থ অনুরোধের সারিটি প্রসারিত করতে 'লগ দেখুন'-এ ক্লিক করুন।

  9. লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
    • স্ট্যাটাস কোড: 500
    • ত্রুটির উৎস: target
    • ত্রুটি কোড: protocol.http.EmptyPath
  10. যদি ফল্ট সোর্স (Fault Source) target এবং ফল্ট কোড (Fault Code) ' protocol.http.EmptyPath হয়, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারের URL-এর পাথটি খালি।

ট্রেস

পদ্ধতি #২: ট্রেস টুল ব্যবহার করা

ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. ট্রেস সেশনটি সক্রিয় করুন এবং হয়
    • 500 Internal Server Error ত্রুটিটি ঘটার জন্য অপেক্ষা করুন, অথবা
    • আপনি যদি সমস্যাটি পুনরায় তৈরি করতে পারেন, 500 Internal Server Error সমস্যাটি পুনরায় তৈরি করতে এপিআই কলটি করুন।
  2. নিশ্চিত করুন যে 'Show all FlowInfos' চালু আছে:

  3. ব্যর্থ হওয়া অনুরোধগুলোর মধ্যে একটি নির্বাচন করুন এবং ট্রেসটি পরীক্ষা করুন।
  4. ট্রেসের বিভিন্ন ধাপ অতিক্রম করে ত্রুটিটি কোথায় ঘটেছে তা খুঁজে বের করুন।
  5. আপনি সাধারণত 'টার্গেট রিকোয়েস্ট ফ্লো স্টার্টেড' পর্যায়ের পরের ফ্লোতে ত্রুটিটি দেখতে পাবেন, যেমনটি নিচে দেখানো হয়েছে:

  6. ট্রেস থেকে ত্রুটির মানটি নোট করুন।

    ত্রুটি: অনুরোধের পথ খালি রাখা যাবে না

    যেহেতু Apigee Edge 'Target Request Flow Started' পর্যায়ের পরে ত্রুটিটি দেখাচ্ছে, এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারের URL-এর path খালি । এমনটা হওয়ার সম্ভাবনা সবচেয়ে বেশি যদি রিকোয়েস্ট ফ্লো-এর কোনো একটি পলিসির মাধ্যমে ফ্লো ভ্যারিয়েবল ' target.url ' (যা ব্যাকএন্ড সার্ভারের URL-কে নির্দেশ করে) একটি খালি পাথ দিয়ে আপডেট করা হয়ে থাকে।

  7. প্রতিটি ফ্লো-এর 'ত্রুটির স্থান' থেকে 'টার্গেট রিকোয়েস্ট ফ্লো স্টার্টেড' পর্যায় পর্যন্ত পেছনের দিকে 'ভেরিয়েবল রিড অ্যান্ড অ্যাসাইনড' অংশটি পরীক্ষা করুন।
  8. পলিসি নির্ধারণ করুন যেখানে ফ্লো ভেরিয়েবল target.url আপডেট করা হয়েছে।

    নমুনা ট্রেস দেখাচ্ছে যে জাভাস্ক্রিপ্ট পলিসি ` target.url ফ্লো ভেরিয়েবলটি আপডেট করেছে:

    উপরে দেখানো নমুনা ট্রেসটিতে, target.url ফ্লো ভেরিয়েবলের মানটি লক্ষ্য করুন। target.url SetTargetURL নামক একটি জাভাস্ক্রিপ্ট পলিসিতে নিম্নলিখিতভাবে আপডেট করা হয়:

    target.url : https://mocktarget.apigee.net
  9. উল্লেখ্য যে, target.url নিম্নলিখিত উপাদানগুলো রয়েছে:
    • স্কিম: https://mocktarget.apigee.net
    • পথ: খালি
  10. ফলে, আপনি Request path cannot be empty ত্রুটিটি পান।
  11. ট্রেসটিতে থাকা AX (অ্যানালিটিক্স ডেটা রেকর্ডেড) ফেজটিতে যান এবং এটিতে ক্লিক করুন।
  12. নিচে স্ক্রল করে Phase Details - Error Headers সেকশনে যান এবং নিচে দেখানো অনুযায়ী X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান নির্ধারণ করুন:

  13. আপনি X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান protocol.http.EmptyPath এবং target হিসেবে দেখতে পাবেন। target যথাক্রমে, যা নির্দেশ করে যে ব্যাকএন্ড সার্ভারের URL-এর পাথটি খালি থাকার কারণে এই ত্রুটিটি ঘটেছে।
    প্রতিক্রিয়া হেডার মূল্য
    এক্স-এপিজি-ফল্ট-কোড protocol.http.EmptyPath
    এক্স-এপিজি-ফল্ট-সোর্স target

এনজিআইএনএক্স

পদ্ধতি #৩: NGINX অ্যাক্সেস লগ ব্যবহার করা

NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP 500 Internal Server Error সম্পর্কিত মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন।
  2. NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log

  3. একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) protocol.http.EmptyPath এরর কোড সহ কোনো 500 এরর আছে কিনা, অথবা এখনও কোনো রিকোয়েস্ট 500 দেখিয়ে ফেইল করছে কিনা, তা খুঁজে দেখুন।
  4. যদি আপনি protocol.http.EmptyPath এর মানের সাথে মিলে যাওয়া X-Apigee-fault-code সহ কোনো 500 এরর খুঁজে পান, তাহলে X-Apigee-fault-source-এর মান নির্ধারণ করুন।

    NGINX অ্যাক্সেস লগ থেকে প্রাপ্ত 500 ত্রুটির একটি নমুনা:

    NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:

    হেডার মূল্য
    এক্স-এপিজি-ফল্ট-কোড protocol.http.EmptyPath
    এক্স-এপিজি-ফল্ট-সোর্স target

    লক্ষ্য করুন যে X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান হলো protocol.http.EmptyPath এবং target যথাক্রমে, যা নির্দেশ করে যে ব্যাকএন্ড সার্ভারের URL-এর পাথটি খালি থাকার কারণে এই ত্রুটিটি ঘটেছে।

কারণ: ব্যাকএন্ড সার্ভারের URL (target.url)-এর পাথ খালি।

রোগ নির্ণয়

  1. সাধারণ ডায়াগনোসিস ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে 500 Internal Server Error জন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ধারণ করুন।
  2. যদি ফল্ট কোড protocol.http.EmptyPath হয় এবং ফল্ট সোর্সের মান target হয়, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারের URL-এর পাথটি খালি ।
  3. Apigee Edge-এ ব্যাকএন্ড সার্ভার URL-টি target.url ফ্লো ভেরিয়েবল দ্বারা নির্দেশিত হয়। এই ত্রুটিটি সাধারণত তখন ঘটে, যখন আপনি টার্গেট রিকোয়েস্ট ফ্লো-এর মধ্যে থাকা কোনো পলিসি (প্রক্সি/শেয়ার্ড ফ্লো-এর অধীনে) ব্যবহার করে ব্যাকএন্ড সার্ভার URL, অর্থাৎ target.url ডায়নামিকভাবে আপডেট করার চেষ্টা করেন, যাতে এর পাথটি খালি থাকে।

  4. নিম্নলিখিত ধাপগুলির মধ্যে একটি ব্যবহার করে নির্ধারণ করুন যে ফ্লো ভেরিয়েবল target.url এর পাথটি সত্যিই খালি কিনা এবং এর মানের উৎস কী:

    ট্রেস

    ট্রেস টুল ব্যবহার করে

    আপনি যদি এই ত্রুটির জন্য একটি ট্রেস সংগ্রহ করে থাকেন, তাহলে "ট্রেস টুল ব্যবহার" অংশে বর্ণিত পদক্ষেপগুলি অনুসরণ করুন এবং:

    1. target.url পাথটি খালি কিনা তা যাচাই করুন।
    2. যদি হ্যাঁ হয়, তাহলে খুঁজে বের করুন কোন পলিসি target.url এর মান পরিবর্তন বা আপডেট করে তাতে একটি খালি পাথ যুক্ত করেছে।

      নমুনা ট্রেস দেখাচ্ছে যে জাভাস্ক্রিপ্ট পলিসি ` target.url:

    3. উপরের নমুনা ট্রেসটিতে লক্ষ্য করুন যে, জাভাস্ক্রিপ্ট পলিসিটি target.url এর মান পরিবর্তন বা আপডেট করে একটি খালি পাথ অন্তর্ভুক্ত করেছে।
    4. উল্লেখ্য যে, target.url নিম্নলিখিত উপাদানগুলো রয়েছে:
      • স্কিম: https://mocktarget.apigee.net
      • পথ: খালি

    লগ

    আপনার লগ সার্ভারে লগ ব্যবহার করা

    1. যদি এই ত্রুটির (যা একটি অনিয়মিত সমস্যা) কোনো ট্রেস আপনার কাছে না থাকে, তাহলে পরীক্ষা করে দেখুন যে আপনি MessageLogging বা ServiceCallout-এর মতো পলিসি ব্যবহার করে আপনার লগ সার্ভারে target.url ফ্লো ভ্যারিয়েবলের মান সম্পর্কিত তথ্য লগ করেছেন কি না।
    2. আপনার কাছে লগগুলো থাকলে, সেগুলো পর্যালোচনা করুন এবং:
      1. target.url পাথটি খালি কিনা তা যাচাই করুন, এবং
      2. দেখুন তো আপনি নির্ধারণ করতে পারেন কিনা কোন পলিসি target.url পরিবর্তন করে একটি খালি পাথ অন্তর্ভুক্ত করেছে।

    এপিআই প্রক্সি

    ব্যর্থ এপিআই প্রক্সি পর্যালোচনা করা হচ্ছে

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

    • এপিআই প্রক্সির ভেতরের নীতি
    • প্রক্সি থেকে আহ্বান করা যেকোনো শেয়ার্ড ফ্লো
  5. যে নির্দিষ্ট পলিসিটি (যেমন, AssignMessage বা JavaScript) target.url ফ্লো ভ্যারিয়েবলটিকে পরিবর্তন বা আপডেট করে, সেটি সতর্কতার সাথে পরীক্ষা করুন এবং target.url পাথ খালি হয়ে যাওয়ার কারণ নির্ণয় করুন।

    এখানে কয়েকটি উদাহরণ পলিসি দেওয়া হল, যেগুলো target.url ফ্লো ভেরিয়েবলটিকে ভুলভাবে একটি খালি পাথ দিয়ে আপডেট করে, যার ফলে এই ত্রুটিটি ঘটে।

    নমুনা #১

    নমুনা #১: জাভাস্ক্রিপ্ট পলিসি target.url ভেরিয়েবল আপডেট করছে

    var url = "https://mocktarget.apigee.net"
    context.setVariable("target.url", url);

    উপরের নমুনাটিতে লক্ষ্য করুন যে, target.url ফ্লো ভ্যারিয়েবলটি ` url আরেকটি ভ্যারিয়েবলে থাকা https://mocktarget.apigee.net মানটি দিয়ে আপডেট করা হয়েছে।

    উল্লেখ্য যে, target.url নিম্নলিখিত উপাদানগুলো রয়েছে:

    • স্কিম: https://mocktarget.apigee.net
    • পথ: খালি

    পাথটি খালি থাকায়, Apigee Edge 500 Internal Server Error রিটার্ন করে এবং এরর কোড হিসেবে protocol.http.EmptyPath ।

    নমুনা #২

    নমুনা #২: জাভাস্ক্রিপ্ট পলিসি target.url ভেরিয়েবল আপডেট করছে

    var path = context.getVariable("request.header.Path");
    var url = "https://mocktarget.apigee.net" + path
    context.setVariable("target.url", url);

    উপরের নমুনাটিতে লক্ষ্য করুন যে, ` url একটি ভেরিয়েবলে থাকা ` https://mocktarget.apigee.net মানটি সংযুক্ত করে target.url ফ্লো ভেরিয়েবলটি আপডেট করা হয়েছে। url এবং path নামক আরেকটি ভেরিয়েবলের মান, যার মান request.header.Path .

    আপনার কাছে যদি প্রকৃত অনুরোধ বা ট্রেস-এর অ্যাক্সেস থাকে, তাহলে আপনি request.header.Path এ পাঠানো আসল মানটি যাচাই করতে পারবেন।

    ব্যবহারকারীর করা নমুনা অনুরোধ:

    curl -v https://HOST_ALIAS/v1/myproxy -H "Authorization: Bearer <token>
    

    এই উদাহরণে, রিকোয়েস্টের অংশ হিসেবে হেডার পাথ পাঠানো হয় না। তাই, জাভাস্ক্রিপ্ট পলিসিতে থাকা 'path' ভ্যারিয়েবলের মান null ।

    সুতরাং:

    • url = https://mocktarget.apigee.net + path
    • url = https://mocktarget.apigee.net + null
    • target.url = https://mocktarget.apigee.netnull

    উল্লেখ্য যে, target.url নিম্নলিখিত উপাদানগুলো রয়েছে:

    • স্কিম: https://mocktarget.apigee.netnull
    • পথ: খালি

    নমুনা #৩

    নমুনা #৩: AssignMessage পলিসি অন্য একটি ভেরিয়েবলের মাধ্যমে target.url ভেরিয়েবল আপডেট করছে

    <AssignMessage async="false" continueOnError="false" enabled="true" name=">AM-SetTargetURL">
        <DisplayName>AM-SetTargetURL</DisplayName>
        <AssignVariable>
             <Name>target.url</Name>
             <Value>https://mocktarget.apigee.net</Value>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>

    উল্লেখ্য যে, target.url নিম্নলিখিত উপাদানগুলো রয়েছে:

    • স্কিম: https://mocktarget.apigee.net
    • পথ: খালি

    উপরের সব উদাহরণে, ব্যাকএন্ড সার্ভার URL-এর পাথ, অর্থাৎ target.url , খালি থাকায় Apigee Edge, protocol.http.EmptyPath এরর কোড সহ 500 Internal Server Error রিটার্ন করে।

সমাধান

RFC 3986 স্পেসিফিকেশনের ২ নং সেকশন: সিনট্যাক্স কম্পোনেন্টস অনুযায়ী, path কম্পোনেন্টটি আবশ্যক এবং এতে অবশ্যই একটি ফরওয়ার্ড স্ল্যাশ (/) থাকতে হবে, এমনকি যদি path অংশ হিসেবে অন্য কোনো অক্ষর না-ও থাকে। এই সমস্যাটি সমাধান করতে নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

  1. নিশ্চিত করুন যে ফ্লো ভেরিয়েবল target.url দ্বারা নির্দেশিত ব্যাকএন্ড সার্ভার URL-এর পাথ সর্বদা খালি নয় ।
    1. কিছু ক্ষেত্রে, পাথে কোনো রিসোর্সের নাম নাও থাকতে পারে, সেক্ষেত্রে নিশ্চিত করুন যে পাথে অন্তত একটি ফরওয়ার্ড স্ল্যাশ ( / ) আছে।
    2. যদি আপনি target.url ফ্লো ভেরিয়েবলের মান নির্ধারণ করতে অন্য কোনো ভেরিয়েবল ব্যবহার করেন, তাহলে নিশ্চিত করুন যে সেই ভেরিয়েবলগুলোর পাথ খালি নয়।
    3. যদি আপনি target.url ফ্লো ভ্যারিয়েবলের মান নির্ধারণ করতে কোনো স্ট্রিং অপারেশন করেন, তাহলে নিশ্চিত করুন যে স্ট্রিং অপারেশনটির ফলাফলে কোনো খালি পাথ নেই।
  2. ডায়াগনোসিস অংশে আলোচিত নমুনাগুলোতে, আপনি নিচে বর্ণিত পদ্ধতি অনুযায়ী এই সমস্যাটি সমাধান করতে পারেন:

    নমুনা #১

    নমুনা #১: জাভাস্ক্রিপ্ট পলিসি target.url ভেরিয়েবল আপডেট করছে

    এই সমস্যাটি সমাধান করতে, নিচে দেখানো অনুযায়ী url ভেরিয়েবলের শেষে একটি ফরওয়ার্ড স্ল্যাশ ( / ) যোগ করুন:

    var url = "https://mocktarget.apigee.net/"
    context.setVariable("target.url", url);

    নমুনা #২

    নমুনা #২: জাভাস্ক্রিপ্ট পলিসি target.url ভেরিয়েবল আপডেট করছে

    var path = context.getVariable("request.header.Path");
    var url = "https://mocktarget.apigee.net" + path
    context.setVariable("target.url", url);

    এই সমস্যাটি সমাধান করতে, নিচে দেখানো পদ্ধতি অনুযায়ী রিকোয়েস্ট হেডার Path অংশ হিসেবে একটি বৈধ পাথ (যেমন, /iloveapis প্রদান করুন।

    নমুনা অনুরোধ:

    curl -v https://HOST_ALIAS/v1/myproxy -H "Authorization: Bearer <token> -H "Path: /iloveapis"
    

    নমুনা #৩

    নমুনা #৩: AssignMessage পলিসি অন্য একটি ভেরিয়েবলের মাধ্যমে target.url ভেরিয়েবল আপডেট করছে

    AssignMessage পলিসির <Value> এলিমেন্টে একটি বৈধ পাথ যোগ করুন। উদাহরণস্বরূপ, আপনি /json ব্যবহার করতে পারেন। /json MockTarget API- এর পাথ হিসেবে, অর্থাৎ, নিচে দেখানো অনুযায়ী <Value> এলিমেন্টটিকে https://mocktarget.apigee.net/json এ পরিবর্তন করুন:

    <AssignMessage async="false" continueOnError="false" enabled="true" name="AM-SetTargetURL">
        <DisplayName>AM-SetTargetURL</DisplayName>
        <AssignVariable>
             <Name>target.url</Name>
             <Value>https://mocktarget.apigee.net/json</Value>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>

স্পেসিফিকেশন

Apigee Edge আশা করে যে, নিম্নলিখিত স্পেসিফিকেশন অনুযায়ী ব্যাকএন্ড সার্ভার URL-এর পাথটি খালি থাকবে না :

স্পেসিফিকেশন
RFC 3986, ধারা ৩: সিনট্যাক্স উপাদানসমূহ
RFC 3986, ধারা ৩.৩: পথ

আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।

রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে

উপরোক্ত নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন।

আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:

  • সংস্থার নাম
  • পরিবেশের নাম
  • এপিআই প্রক্সি নাম
  • protocol.http.EmptyPath এরর কোড সহ 500 Internal Server Error টি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণ curl কমান্ড।
  • এপিআই অনুরোধগুলির ট্রেস ফাইল

আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:

  • ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
  • পরিবেশের নাম
  • এপিআই প্রক্সি বান্ডেল
  • এপিআই অনুরোধগুলির ট্রেস ফাইল
  • NGINX অ্যাক্সেস লগ:

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log

    যেখানে: ORG , ENV এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হয়।

  • মেসেজ প্রসেসর সিস্টেম লগ /opt/apigee/var/log/edge-message- processor/logs/system.log

তথ্যসূত্র

প্রবাহ চলক - লক্ষ্য