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

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

উপসর্গ

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

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

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

HTTP/1.1 500 Internal Server Error

উপরন্তু, আপনি নিম্নলিখিত ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:

{
   "fault":{
      "faultstring":"Invalid request path",
      "detail":{
         "errorcode":"protocol.http.BadPath"
      }
   }
}

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

এই ত্রুটিটি ঘটে যদি ব্যাকএন্ড সার্ভারের অনুরোধ URL, ফ্লো ভেরিয়েবল target.url দ্বারা উপস্থাপিত, একটি path থাকে path যেটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয়, যা অবৈধ

স্পেসিফিকেশন অনুযায়ী RFC 3986, বিভাগ 3: সিনট্যাক্স উপাদান এবং RFC 3986, বিভাগ 3.3: পথ :

  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.BadPath http.BadPath সহ প্রতিক্রিয়া জানায়।

উদাহরণস্বরূপ: যদি target.url মান https://www.mocktarget.apigee.net?json থাকে, তাহলে এই ত্রুটিটি ঘটে কারণ path অবৈধ বলে পাওয়া যায়, যেহেতু এটি একটি প্রশ্ন চিহ্ন ( ? ) এর পরিবর্তে শুরু হয় একটি ফরোয়ার্ড স্ল্যাশ ( / )

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

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

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

API মনিটরিং

পদ্ধতি #1: API মনিটরিং ব্যবহার করা

API মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:

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

  3. এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
  4. নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
  5. সময়ের বিরুদ্ধে প্লট ফল্ট কোড

  6. ফল্ট কোড protocol.http.BadPath আছে এমন একটি সেল নির্বাচন করুন। http.BadPath নীচে দেখানো হয়েছে:

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

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

  9. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
    • স্ট্যাটাস কোড: 500
    • ফল্ট উত্স: target
    • ফল্ট কোড: protocol.http.BadPath
  10. যদি ফল্ট সোর্স target হয় এবং ফল্ট কোডটি হয় protocol.http.BadPath , তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভার URL এর একটি অবৈধ পথ রয়েছে৷

ট্রেস

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

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

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

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

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

    ত্রুটি: অবৈধ অনুরোধের পথ

    যেহেতু টার্গেট রিকোয়েস্ট ফ্লো স্টার্টেড পর্বের পরে Apigee Edge দ্বারা ত্রুটিটি উত্থাপিত হয়েছে, তাই এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভার URL-এর একটি অবৈধ পথ রয়েছে। এটি সম্ভবত ঘটতে পারে যদি Apigee Edge-এ ফ্লো ভেরিয়েবল target.url (যা ব্যাকএন্ড সার্ভারের জন্য URL প্রতিনিধিত্ব করে) টার্গেট রিকোয়েস্ট ফ্লোতে কোনো একটি নীতির মাধ্যমে একটি অবৈধ পথ দিয়ে আপডেট করা হয়।

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

    জাভাস্ক্রিপ্ট নীতি দেখানো নমুনা ট্রেস ফ্লো পরিবর্তনশীল target.url:

    উপরে দেখানো নমুনা ট্রেসে, লক্ষ্য করুন ফ্লো ভেরিয়েবল ভ্যারিয়েবল target.url এর মান JS- SetTargetURL নামে একটি জাভাস্ক্রিপ্ট নীতিতে আপডেট করা হয়েছে নিম্নরূপ: target.url : https://mocktarget.apigee.net?json

  9. লক্ষ্য করুন যে target.url এর মানটিতে নিম্নলিখিত উপাদান রয়েছে:
    • স্কিম: https
    • কর্তৃপক্ষ: mocktarget.apigee.net
    • পথ:? ?json
  10. যেহেতু পাথ উপাদানটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয়, তাই আপনি Invalid request path ত্রুটিটি পান।
  11. ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং এটিতে ক্লিক করুন।
  12. ফেজ বিশদ - ত্রুটি শিরোনাম বিভাগে নীচে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান নির্ধারণ করুন:

  13. আপনি protocol.http.BadPath হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান দেখতে পাবেন। http.BadPath এবং target যথাক্রমে, ব্যাকএন্ড সার্ভার URL-এর একটি অবৈধ পথ থাকার কারণে এই ত্রুটিটি হয়েছে তা নির্দেশ করে।

    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.BadPath
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

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

পদ্ধতি #3: 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.BadPath এর সাথে কোনো 500 ত্রুটি আছে কিনা তা দেখতে অনুসন্ধান করুন একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা 500 এর সাথে কোনো অনুরোধ এখনও ব্যর্থ হয় কিনা।
  4. আপনি যদি X-Apigee-fault-code-এর সাথে protocol.http.BadPath এর মানের সাথে 500 ত্রুটি খুঁজে পান, তাহলে X- Apigee-fault-source-এর মান নির্ধারণ করুন।

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

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

    হেডার মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.BadPath
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

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

কারণ: ব্যাকএন্ড সার্ভার URL (target.url) এর একটি অবৈধ পথ রয়েছে৷

রোগ নির্ণয়

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

  4. ফ্লো ভেরিয়েবল target.url প্রকৃতপক্ষে একটি অবৈধ পথ এবং এর মানের উৎস আছে কিনা তা নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে নির্ধারণ করুন:

    ট্রেস

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

    আপনি যদি এই ত্রুটির জন্য একটি ট্রেস ক্যাপচার করে থাকেন, তাহলে ট্রেস টুল ব্যবহারে ব্যাখ্যা করা ধাপগুলি ব্যবহার করুন এবং

    1. target.url একটি অবৈধ পথ আছে কিনা তা যাচাই করুন, অর্থাৎ যদি এটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয়।
    2. যদি হ্যাঁ, তাহলে সেই নীতিটি খুঁজে বের করুন যা একটি অবৈধ পথ ধারণ করতে target.url এর মান পরিবর্তন বা আপডেট করেছে৷

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

    3. উপরের নমুনা ট্রেসে, লক্ষ্য করুন যে JavaScript নীতি একটি অবৈধ পথ ধারণ করতে target.url এর মান পরিবর্তন বা আপডেট করেছে।
    4. লক্ষ্য করুন যে target.url নিম্নলিখিত উপাদান রয়েছে:
      • স্কিম: https
      • কর্তৃপক্ষ: mocktarget.apigee.net
      • পথ:? ?json

      পথটি ফরোয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয় , তাই এটি অবৈধ।

    লগ

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

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

    API প্রক্সি

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

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

    • API প্রক্সির মধ্যে নীতি
    • প্রক্সি থেকে আমন্ত্রিত কোনো ভাগ করা প্রবাহ
  5. নির্দিষ্ট নীতিটি সাবধানে পরীক্ষা করুন (উদাহরণস্বরূপ: AssignMessage বা JavaScript) যা ফ্লো ভেরিয়েবল target.url সংশোধন বা আপডেট করে এবং একটি অবৈধ পথ থাকার জন্য target.url আপডেট করার কারণ নির্ধারণ করে।

    এখানে কয়েকটি উদাহরণ নীতি রয়েছে যা ফ্লো ভেরিয়েবল target.url ভুলভাবে আপডেট করে যাতে এই ত্রুটির জন্য একটি অবৈধ পথ থাকে।

    নমুনা #1

    নমুনা #1: JavaScript পলিসি আপডেট করা target.url ভেরিয়েবল

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

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

    উল্লেখ্য যে url এর মান নিম্নলিখিত উপাদান আছে:

    • স্কিম: https
    • কর্তৃপক্ষ: mocktarget.apigee.net
    • পথ:? ?json

    পথটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয় , যা অবৈধ । অতএব, Apigee Edge ত্রুটি কোড protocol.http.BadPath সহ 500 Internal Server Error প্রদান করে।http.BadPath।

    নমুনা #2

    নমুনা #2: অনুরোধ শিরোনামের মানের উপর ভিত্তি করে JavaScript পলিসি আপডেট করা target.url ভেরিয়েবল

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

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

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

    ব্যবহারকারী দ্বারা তৈরি নমুনা অনুরোধ

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

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

    তাই:

    • url = https://mocktarget.apigee.net + path
    • url = https://mocktarget.apigee.net + "?user"
    • target.url = https://mocktarget.apigee.net?user

    লক্ষ্য করুন যে target.url এর মান , নিম্নলিখিত উপাদান আছে:

    • স্কিম: https
    • কর্তৃপক্ষ: mocktarget.apigee.net
    • পথ: ?user

    পথটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয় , যা অবৈধ । তাই, Apigee Edge ত্রুটি কোড protocol.http.BadPath সহ 500 Internal Server Error প্রদান করে।http.BadPath।

    নমুনা #3

    নমুনা #3: অ্যাসাইনমেসেজ পলিসি আপডেট করা 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?echo</Value>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>

    লক্ষ্য করুন যে url এর মান , এর নিম্নলিখিত উপাদান রয়েছে:

    • স্কিম: https
    • কর্তৃপক্ষ: mocktarget.apigee.net
    • পথ:? ?echo

    আবার এই উদাহরণে, পথটি ফরওয়ার্ড স্ল্যাশ ( / ) এর পরিবর্তে একটি প্রশ্ন চিহ্ন ( ? ) দিয়ে শুরু হয় , যা অবৈধ । অতএব, Apigee Edge ত্রুটি কোড protocol.http.BadPath সহ 500 Internal Server Error প্রদান করে।http.BadPath।

রেজোলিউশন

ইউআরএল স্পেসিফিকেশন RFC 3986, বিভাগ 3: সিনট্যাক্স কম্পোনেন্টস অনুযায়ী, path কম্পোনেন্ট প্রয়োজন এবং এটি সর্বদা "/" দিয়ে শুরু হতে হবে। তাই এই সমস্যাটি সমাধান করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:

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

    নমুনা #1

    নমুনা #1: JavaScript পলিসি আপডেট করা target.url ভেরিয়েবল

    এই সমস্যাটি ঠিক করার জন্য ভেরিয়েবল url একটি প্রশ্ন চিহ্ন ( ? ) এর পরিবর্তে একটি ফরোয়ার্ড স্ল্যাশ ( / ) ব্যবহার করুন যা নীচে দেখানো হয়েছে:

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

    নমুনা #2

    নমুনা #2: অনুরোধ শিরোনামের মানের উপর ভিত্তি করে JavaScript পলিসি আপডেট করা target.url ভেরিয়েবল

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

    নিশ্চিত করুন যে আপনি একটি বৈধ পথ পাস করেছেন, উদাহরণস্বরূপ: /user অনুরোধ শিরোনাম Path অংশ হিসাবে এই সমস্যাটি সমাধান করার জন্য নীচে দেখানো হয়েছে:

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

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

    নমুনা #3

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

    AssignMessage নীতির <Value> উপাদানে একটি বৈধ পথ যোগ করুন। অর্থাৎ, প্রশ্ন চিহ্নটি প্রতিস্থাপন করুন ( ? ) সঙ্গে একটি ফরোয়ার্ড স্ল্যাশ ( / ) <Value> উপাদানে এবং এই সমস্যাটি ঠিক করার জন্য এটিকে https://mocktarget.apigee.net/echo তে সেট করুন নীচে দেখানো হিসাবে:

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

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

    Apigee এজ সেই path আশা করে path উপাদান ব্যাকএন্ড সার্ভারের URL সর্বদা একটি দিয়ে শুরু করতে হবে ফরোয়ার্ড স্ল্যাশ ( / ) নিম্নলিখিত স্পেসিফিকেশন অনুযায়ী:

    স্পেসিফিকেশন
    RFC 3986, বিভাগ 3: সিনট্যাক্স উপাদান
    RFC 3986, বিভাগ 3.3: পথ

    আপনার যদি এখনও Apigee সাপোর্ট থেকে কোনো সহায়তার প্রয়োজন হয়, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন- এ যান।

    ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে

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

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

    • প্রতিষ্ঠানের নাম
    • পরিবেশের নাম
    • API প্রক্সি নাম
    • সম্পূর্ণ curl কমান্ড ত্রুটি কোড protocol.http.BadPath সহ 500 Internal Server Error পুনরুত্পাদন করতে ব্যবহৃত হয়
    • API অনুরোধের জন্য ট্রেস ফাইল

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

    • ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
    • পরিবেশের নাম
    • API প্রক্সি বান্ডেল
    • API অনুরোধের জন্য ট্রেস ফাইল
    • 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

    তথ্যসূত্র

    ফ্লো ভেরিয়েবল - লক্ষ্য