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