আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
আপনি দুটি জায়গায় দৃশ্যমান বার্তা ব্যবহার করে একটি এক্সটেনশন ডিবাগ করতে পারেন: ট্রেস টুল এবং এক্সটেনশন লগ। যখন একটি এক্সটেনশন কাজ করছে না, তখন সমস্যা চিহ্নিত করতে কখনও কখনও উভয় জায়গা থেকে তথ্যের প্রয়োজন হতে পারে।
Apigee Edge Trace টুল হল যেখানে আপনি পুনরাবৃত্তিমূলকভাবে API প্রক্সি কোডটি বিকাশ করার সাথে সাথে পরীক্ষা এবং সম্পাদনা করেন। ট্রেস বার্তাগুলিতে API প্রক্সি এবং নীতি কনফিগারেশন সহ আপনার API প্রক্সি কোড থেকে ত্রুটি রয়েছে৷
এক্সটেনশন-সম্পর্কিত ত্রুটিগুলি যা ট্রেস টুলে প্রদর্শিত হয় সেগুলিতে সাধারণত খুব বেশি বিশদ থাকে না, কোন এক্সটেনশন কলআউট ব্যর্থ হয়েছে তা বলা ছাড়া, একটি HTTP ত্রুটি কোড সহ। যখন আপনি এখানে দরকারী কিছু দেখতে পাচ্ছেন না, তখন দেখার জন্য পরবর্তী সেরা জায়গাটি হল আপনি যে এক্সটেনশনটি ব্যবহার করছেন তার লগ।
এক্সটেনশন রানটাইমে লগ এন্ট্রি তৈরি করে। (এক্সটেনশন লগ শুধুমাত্র প্রতিষ্ঠানের প্রশাসকদের জন্য উপলব্ধ।)
এই লগগুলিতে বাহ্যিক সংস্থান দ্বারা প্রত্যাবর্তিত এন্ট্রিগুলি অন্তর্ভুক্ত রয়েছে যার সাথে ইন্টারঅ্যাক্ট করার জন্য এক্সটেনশনটি কনফিগার করা হয়েছে৷ উদাহরণস্বরূপ, যদি এক্সটেনশনে এক্সটার্নাল রিসোর্স শংসাপত্রগুলি ভুল কনফিগার করা হয়, তাহলে ত্রুটিটি এখানে প্রদর্শিত হতে পারে৷
লগগুলি অভ্যন্তরীণ এক্সটেনশন কোড থেকে এন্ট্রি অন্তর্ভুক্ত করে। আপনি যখন লগগুলি দেখছেন, তখন মনে রাখবেন যে কিছু এন্ট্রি আপনি যে ত্রুটিটি সংশোধন করছেন তার সাথে প্রাসঙ্গিক নয়৷ এক্সটেনশন-সম্পর্কিত লগ এন্ট্রিগুলি সাধারণত শব্দ
details
দিয়ে শুরু হয়, যেমন ক্লাউড পাব/সাব এক্সটেনশন থেকে নিম্নলিখিত লগ এন্ট্রিতে:details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
ত্রুটির ধরন এবং কারণ
এক্সটেনশন অনুরোধ প্রক্রিয়াকরণ একটি API প্রক্সিতে এক্সটেনশন কলআউট নীতি থেকে প্রবাহিত হয়, এক্সটেনশনের মাধ্যমে, বাহ্যিক সংস্থানে, তারপর আবার ফিরে আসে। তাই যে কোনো জায়গায় একটি ত্রুটি ঘটতে পারে.
আপনি যে ত্রুটিগুলি দেখছেন তা নিম্নলিখিত বিভাগে পড়তে পারে৷
এক্সটেনশন কনফিগারেশনে ত্রুটি
এটি একটি কনফিগারেশন যা একটি প্রতিষ্ঠানের প্রশাসক পরিবেশে একটি এক্সটেনশন যোগ করার সময় করে ।
উদাহরণস্বরূপ, আপনি যদি ক্লাউড লগিং এক্সটেনশনটিকে একটি ভুল Google ক্লাউড প্রকল্প আইডি দিয়ে কনফিগার করেন, তাহলে Google ক্লাউড লগিং এক্সটেনশনে একটি ত্রুটি ফিরিয়ে দেবে৷ এই ত্রুটিগুলি সম্পর্কে বিশদ বিবরণ সাধারণত এক্সটেনশন লগে থাকে৷
ট্রেস টুলে প্রমাণ
প্রক্সি সম্পাদকে, এই ত্রুটিগুলি সাধারণত 4xx
- বা 5xx
-স্তরের ত্রুটি হিসাবে দেখাবে৷ যাইহোক, প্রক্সি এডিটর ত্রুটির কারণ সম্বন্ধে কোনো সুনির্দিষ্ট তথ্য প্রদর্শন করবে না তা বলা ছাড়া যে এক্সটেনশনটি একটি ত্রুটি ফিরিয়ে দিয়েছে।
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
এক্সটেনশন লগে প্রমাণ
এই ধরনের ত্রুটি সম্পর্কে বিশদ বিবরণ থাকলে, আপনি এটি এক্সটেনশনের লগ এন্ট্রিতে দেখতে পাবেন। নিম্নলিখিত ত্রুটি বার্তা, ক্লাউড পাব/সাব পরিষেবা দ্বারা প্রত্যাবর্তন, একটি বিকৃত প্রকল্প ID থেকে ফলাফল৷
details: 'Project does not exist: example-test-12345'
ExtensionCallout নীতি কনফিগারেশনে ত্রুটি৷
এই ত্রুটিগুলি ঘটে যখন ExtensionCallout নীতিটি ভুল কনফিগার করা হয়, হয় একটি নীতি কনফিগারেশন সিনট্যাক্স ত্রুটির মাধ্যমে বা ভুল কনফিগারেশন কী বা মানগুলির মাধ্যমে৷ নীতিটি কীভাবে কনফিগার করা হয়েছে তার উপর নির্ভর করে এই ত্রুটি দুটি রূপ নেয়:
বাহ্যিক সম্পদ দ্বারা মূল্যায়ন করা ভুল মান
এটি ঘটতে পারে যখন কনফিগারেশন ত্রুটিটি এক্সটেনশনের জন্য বৈধ বলে মনে হয়, কিন্তু বহিরাগত সংস্থানের জন্য অবৈধ ছিল৷ উদাহরণস্বরূপ, যদি এক্সটেনশনটি ক্লাউড স্প্যানারে একটি ভুল ডাটাবেস আইডি পাস করে, ক্লাউড স্প্যানার এক্সটেনশন লগে লগ করা একটি ত্রুটি ফিরিয়ে দেবে:
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
এটি নীতির
<Input>
উপাদানে ভুল কনফিগারেশন JSON-এর জন্যও ঘটতে পারে। কিছু এক্সটেনশনের জন্য, JSON-এর একটি অংশ এক্সটেনশন দ্বারা প্রক্রিয়া করা হয় এবং একটি অংশ সম্পদে পাঠানো হয়। উদাহরণস্বরূপ, ক্লাউড লগিং এক্সটেনশন কনফিগারেশন JSON-এ একটিmetadata
অবজেক্ট রয়েছে যার বিষয়বস্তু ক্লাউড লগিং -এ পাস করা হয়। সেখানে ভুল কী নাম — যেমনtype
পরিবর্তেtyp
— এক্সটেনশন লগে এন্ট্রি হিসাবে প্রদর্শিত বাহ্যিক সংস্থান থেকে ত্রুটিগুলি ফিরিয়ে দিতে পারে:details: 'Resource type cannot be empty'
এক্সটেনশন দ্বারা মূল্যায়ন করা ভুল মান
এই ত্রুটিগুলির মধ্যে রয়েছে
<Input>
উপাদান JSON-এর নীতি-মূল্যায়িত অংশগুলিতে সিনট্যাক্স ত্রুটি,<Action>
উপাদানে অ্যাকশন নামের ভুল বানান ইত্যাদি। এই ত্রুটিগুলি সাধারণত ট্রেস টুলে প্রদর্শিত হবে, কিন্তু এক্সটেনশন লগগুলিতে নয়।
ট্রেস টুলে প্রমাণ
প্রক্সি সম্পাদকে, এই ত্রুটিগুলি সাধারণত 4xx
- বা 5xx
-স্তরের ত্রুটি হিসাবে দেখাবে৷ যাইহোক, প্রক্সি এডিটর ত্রুটির কারণ সম্বন্ধে কোনো সুনির্দিষ্ট তথ্য প্রদর্শন করবে না তা বলা ছাড়া যে এক্সটেনশনটি একটি ত্রুটি ফিরিয়ে দিয়েছে। ক্লাউড ফায়ারস্টোর এক্সটেনশনে অ্যাকশন নামের ভুল বানান করার সময় ট্রেস টুলে নিম্নলিখিত ত্রুটিটি দেখা যায়।
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
এক্সটেনশন লগে প্রমাণ
যখন নীতি কনফিগারেশনের ফলে বাহ্যিক সম্পদে একটি প্রক্রিয়াকরণ ত্রুটি দেখা দেয়, তখন ত্রুটিটি সাধারণত লগে প্রদর্শিত হবে।
সম্পদে এক্সটেনশনের অনুরোধের সাথে সম্পর্কিত ত্রুটি৷
এটি একটি ত্রুটি যেখানে এক্সটেনশনের সাথে সম্পর্কিত নয় এমন কারণে এক্সটার্নাল রিসোর্সের অনুরোধ সফল হয়নি৷
উদাহরণস্বরূপ, কল্পনা করুন যে আপনি ডাটাবেসে একটি সারি যোগ করতে ক্লাউড স্প্যানার এক্সটেনশন ব্যবহার করছেন, কিন্তু সারির প্রাথমিক কী মানটি ইতিমধ্যেই একটি বিদ্যমান সারিতে ব্যবহার করা হয়েছে৷ ক্লাউড স্প্যানার এক্সটেনশনে একটি ত্রুটি ফিরিয়ে দেবে, যা এক্সটেনশন লগে ত্রুটি যুক্ত করবে।
ট্রেস টুলে প্রমাণ
প্রক্সি সম্পাদকে, এই ত্রুটিগুলি সাধারণত 4xx
- বা 5xx
-স্তরের ত্রুটি হিসাবে দেখাবে৷ যাইহোক, প্রক্সি এডিটর ত্রুটির কারণ সম্বন্ধে কোনো সুনির্দিষ্ট তথ্য প্রদর্শন করবে না তা বলা ছাড়া যে এক্সটেনশনটি একটি ত্রুটি ফিরিয়ে দিয়েছে।
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
এক্সটেনশন লগে প্রমাণ
লগে সাধারণত বাহ্যিক সম্পদ থেকে বার্তা সহ এন্ট্রি থাকবে। ক্লাউড স্প্যানার থেকে নিম্নলিখিত লগ বার্তাটি বিদ্যমান প্রাথমিক কী মান ত্রুটি বর্ণনা করে৷
details: 'Row [jonesy42] in table user already exists'