আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
Edge Microgateway v. 2.4.x
সংক্ষিপ্ত বিবরণ
এই অধ্যায়ে এজ মাইক্রোগেটওয়ের ব্যবস্থাপনা ও কনফিগারেশন, যার মধ্যে মনিটরিং, লগিং এবং ডিবাগিং অন্তর্ভুক্ত, তা আলোচনা করা হয়েছে।
কনফিগারেশন পরিবর্তন করা
যেসব কনফিগারেশন ফাইল সম্পর্কে আপনার জানা প্রয়োজন, সেগুলো হলো:
- ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
- নতুনভাবে চালু করা এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সের জন্য ডিফল্ট কনফিগারেশন ফাইল
- চলমান ইনস্ট্যান্সগুলির জন্য ডায়নামিক কনফিগারেশন ফাইল
এই বিভাগে এই ফাইলগুলি এবং সেগুলি পরিবর্তন করার জন্য আপনার যা জানা প্রয়োজন, তা আলোচনা করা হয়েছে। কনফিগারেশন ফাইল সেটিংস সম্পর্কে বিস্তারিত জানতে, এজ মাইক্রোগেটওয়ে কনফিগারেশন রেফারেন্স দেখুন।
ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
আপনি যখন Edge Microgateway ইনস্টল করেন, তখন একটি ডিফল্ট সিস্টেম কনফিগারেশন ফাইল এখানে রাখা হয়:
[prefix]/lib/node_modules/edgemicro/config/default.yaml
যেখানে [prefix] হলো npm প্রিফিক্স ডিরেক্টরি। Edge Microgateway কোথায় ইনস্টল করা আছে তা দেখুন।
আপনি যদি সিস্টেম কনফিগারেশন ফাইল পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই Edge Microgateway পুনরায় ইনিশিয়ালাইজ, রিকনফিগার এবং রিস্টার্ট করতে হবে:
-
edgemicro initকল করুন -
edgemicro configure [params]কল করুন -
edgemicro start [params]কল করুন
নতুনভাবে চালু করা এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সগুলির জন্য ডিফল্ট কনফিগারেশন ফাইল
যখন আপনি edgemicro init চালান, তখন উপরে বর্ণিত সিস্টেম কনফিগারেশন ফাইল, default.yaml , এই ডিরেক্টরিতে রাখা হয়: ~ /.edgemicro
যদি আপনি ~ /.edgemicro তে থাকা কনফিগারেশন ফাইলটি পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই Edge Microgateway পুনরায় কনফিগার করে রিস্টার্ট করতে হবে:
-
edgemicro stop -
edgemicro configure[params] -
edgemicro start[params]
চলমান ইনস্ট্যান্সগুলির জন্য ডায়নামিক কনফিগারেশন ফাইল
যখন আপনি edgemicro configure [params] চালান, তখন ~ /.edgemicro তে একটি ডাইনামিক কনফিগারেশন ফাইল তৈরি হয়। ফাইলটির নামকরণ এই প্যাটার্ন অনুসারে করা হয়: [org]-[env]-config.yaml , যেখানে org এবং env হলো আপনার Apigee Edge অর্গানাইজেশন এবং এনভায়রনমেন্টের নাম। আপনি এই ফাইলটি ব্যবহার করে কনফিগারেশনে পরিবর্তন করতে পারেন এবং তারপর কোনো ডাউনটাইম ছাড়াই তা রিলোড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি প্লাগইন যোগ এবং কনফিগার করেন, তাহলে আপনি কোনো ডাউনটাইম ছাড়াই কনফিগারেশনটি রিলোড করতে পারেন, যেমনটি নিচে ব্যাখ্যা করা হয়েছে।
যদি Edge Microgateway চালু থাকে (জিরো-ডাউনটাইম বিকল্প):
- Edge Microgateway কনফিগারেশন পুনরায় লোড করুন:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
কোথায়:
-
orgহলো আপনার Edge অর্গানাইজেশনের নাম (আপনাকে অবশ্যই একজন অর্গ অ্যাডমিনিস্ট্রেটর হতে হবে)। -
envহলো আপনার সংস্থার একটি পরিবেশ (যেমন test বা prod)। -
keyহলো সেই কী যা পূর্বে configure কমান্ডের মাধ্যমে ফেরত দেওয়া হয়েছিল। -
secretহলো সেই কী, যা পূর্বে configure কমান্ডের মাধ্যমে ফেরত দেওয়া হয়েছিল।
উদাহরণ
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
-
যদি Edge Microgateway বন্ধ করা হয়:
- Edge মাইক্রোগেটওয়ে পুনরায় চালু করুন:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
কোথায়:
-
orgহলো আপনার Edge অর্গানাইজেশনের নাম (আপনাকে অবশ্যই একজন অর্গ অ্যাডমিনিস্ট্রেটর হতে হবে)। -
envহলো আপনার সংস্থার একটি পরিবেশ (যেমন test বা prod)। -
keyহলো সেই কী যা পূর্বে configure কমান্ডের মাধ্যমে ফেরত দেওয়া হয়েছিল। -
secretহলো সেই কী, যা পূর্বে configure কমান্ডের মাধ্যমে ফেরত দেওয়া হয়েছিল।
উদাহরণ
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
-
এখানে একটি নমুনা কনফিগারেশন ফাইল দেওয়া হলো। কনফিগারেশন ফাইলের সেটিংস সম্পর্কে বিস্তারিত জানতে, এজ মাইক্রোগেটওয়ে কনফিগারেশন রেফারেন্স দেখুন।
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
পরিবেশ ভেরিয়েবল সেট করা
যেসব কমান্ড-লাইন ইন্টারফেস কমান্ডের জন্য আপনার Edge অর্গানাইজেশন ও এনভায়রনমেন্টের ভ্যালু প্রয়োজন, এবং Edge Microgateway চালু করার জন্য প্রয়োজনীয় কী (key) ও সিক্রেট (secret) এই এনভায়রনমেন্ট ভেরিয়েবলগুলোতে সংরক্ষণ করা যেতে পারে:
-
EDGEMICRO_ORG -
EDGEMICRO_ENV -
EDGEMICRO_KEY -
EDGEMICRO_SECRET
এই ভেরিয়েবলগুলো সেট করা ঐচ্ছিক। যদি আপনি এগুলো সেট করেন, তাহলে কমান্ড-লাইন ইন্টারফেস (CLI) ব্যবহার করে এজ মাইক্রোগেটওয়ে কনফিগার ও চালু করার সময় এগুলোর মান উল্লেখ করার প্রয়োজন নেই।
এজ মাইক্রোগেটওয়ে সার্ভারে SSL কনফিগার করা
আপনি SSL ব্যবহার করার জন্য মাইক্রোগেটওয়ে সার্ভারটি কনফিগার করতে পারেন। উদাহরণস্বরূপ, SSL কনফিগার করা থাকলে, আপনি এজ মাইক্রোগেটওয়ের মাধ্যমে "https" প্রোটোকল ব্যবহার করে API কল করতে পারেন, যেমন:
https://localhost:8000/myapi
মাইক্রোগেটওয়ে সার্ভারে SSL কনফিগার করতে, এই ধাপগুলো অনুসরণ করুন:
- openssl ইউটিলিটি ব্যবহার করে অথবা আপনার পছন্দের যেকোনো পদ্ধতি অবলম্বন করে একটি SSL সার্টিফিকেট ও কী তৈরি বা সংগ্রহ করুন।
- Edge Microgateway কনফিগারেশন ফাইলে
edgemicro:sslঅ্যাট্রিবিউটটি যোগ করুন। অপশনগুলোর সম্পূর্ণ তালিকার জন্য, নিচের টেবিলটি দেখুন। Edge Microgateway কনফিগারেশন পরিবর্তন করার বিস্তারিত তথ্যের জন্য, “কনফিগারেশন পরিবর্তন করা” দেখুন। উদাহরণস্বরূপ:edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true - Edge Microgateway পুনরায় চালু করুন। আপনি কোন কনফিগারেশন ফাইলটি সম্পাদনা করেছেন (ডিফল্ট ফাইল নাকি রানটাইম কনফিগারেশন ফাইল), তার উপর নির্ভর করে 'কনফিগারেশন পরিবর্তন করা' অংশে বর্ণিত পদক্ষেপগুলি অনুসরণ করুন।
এখানে কনফিগারেশন ফাইলের edgemicro অংশের একটি উদাহরণ দেওয়া হলো, যেখানে SSL কনফিগার করা আছে:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
এখানে সকল সমর্থিত সার্ভার বিকল্পগুলির একটি তালিকা দেওয়া হল:
| বিকল্প | বর্ণনা |
|---|---|
key | একটি ca.key ফাইলের পাথ (PEM ফরম্যাটে)। |
cert | একটি ca.cert ফাইলের পাথ (PEM ফরম্যাটে)। |
pfx | PFX ফরম্যাটে ক্লায়েন্টের প্রাইভেট কী, সার্টিফিকেট এবং CA সার্টিফিকেট সম্বলিত একটি pfx ফাইলের পাথ। |
passphrase | প্রাইভেট কী বা PFX-এর পাসফ্রেজ সম্বলিত একটি স্ট্রিং। |
ca | PEM ফরম্যাটে বিশ্বস্ত সার্টিফিকেটগুলোর তালিকা সম্বলিত ফাইলের পাথ। |
ciphers | ব্যবহারযোগ্য সাইফারগুলোর বর্ণনা সম্বলিত একটি স্ট্রিং, যা একটি কোলন (:) দ্বারা পৃথক করা থাকবে। |
rejectUnauthorized | যদি সত্য হয়, তাহলে সরবরাহকৃত CA-এর তালিকার সাথে সার্ভার সার্টিফিকেটটি যাচাই করা হয়। যাচাইকরণ ব্যর্থ হলে, একটি ত্রুটি বার্তা দেখানো হয়। |
secureProtocol | ব্যবহার করার জন্য SSL পদ্ধতি। উদাহরণস্বরূপ, SSL-কে সংস্করণ ৩-এ বাধ্যতামূলক করতে SSLv3_method ব্যবহার করা যেতে পারে। |
servername | SNI (সার্ভার নেম ইন্ডিকেশন) TLS এক্সটেনশনের জন্য সার্ভারের নাম। |
requestCert | দ্বিমুখী SSL এর জন্য true; একমুখী SSL এর জন্য false |
ক্লায়েন্ট SSL/TLS বিকল্প ব্যবহার করে
টার্গেট এন্ডপয়েন্টগুলিতে সংযোগ করার সময় আপনি এজ মাইক্রোগেটওয়েকে একটি TLS বা SSL ক্লায়েন্ট হিসেবে কনফিগার করতে পারেন। মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে, SSL/TLS অপশন সেট করার জন্য targets এলিমেন্টটি ব্যবহার করুন।
এই উদাহরণটিতে এমন সেটিংস দেওয়া হয়েছে যা সকল হোস্টের ক্ষেত্রে প্রযোজ্য হবে:
targets:
ssl:
client:
key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueএই উদাহরণে, সেটিংসগুলো শুধুমাত্র নির্দিষ্ট হোস্টের ক্ষেত্রেই প্রয়োগ করা হয়:
targets:
host: 'myserver.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueএখানে TLS-এর একটি উদাহরণ দেওয়া হলো:
targets:
host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueএখানে সকল সমর্থিত ক্লায়েন্ট অপশনগুলোর একটি তালিকা দেওয়া হলো:
| বিকল্প | বর্ণনা |
|---|---|
pfx | PFX ফরম্যাটে ক্লায়েন্টের প্রাইভেট কী, সার্টিফিকেট এবং CA সার্টিফিকেট সম্বলিত একটি pfx ফাইলের পাথ। |
key | একটি ca.key ফাইলের পাথ (PEM ফরম্যাটে)। |
passphrase | প্রাইভেট কী বা PFX-এর পাসফ্রেজ সম্বলিত একটি স্ট্রিং। |
cert | একটি ca.cert ফাইলের পাথ (PEM ফরম্যাটে)। |
ca | PEM ফরম্যাটে বিশ্বস্ত সার্টিফিকেটগুলোর তালিকা সম্বলিত ফাইলের পাথ। |
ciphers | ব্যবহারযোগ্য সাইফারগুলোর বর্ণনা সম্বলিত একটি স্ট্রিং, যা একটি কোলন (:) দ্বারা পৃথক করা থাকবে। |
rejectUnauthorized | যদি সত্য হয়, তাহলে সরবরাহকৃত CA-এর তালিকার সাথে সার্ভার সার্টিফিকেটটি যাচাই করা হয়। যাচাইকরণ ব্যর্থ হলে, একটি ত্রুটি বার্তা দেখানো হয়। |
secureProtocol | ব্যবহার করার জন্য SSL পদ্ধতি। উদাহরণস্বরূপ, SSL-কে সংস্করণ ৩-এ বাধ্যতামূলক করতে SSLv3_method ব্যবহার করা যেতে পারে। |
servername | SNI (সার্ভার নেম ইন্ডিকেশন) TLS এক্সটেনশনের জন্য সার্ভারের নাম। |
edgemicro-auth প্রক্সি কাস্টমাইজ করা
ডিফল্টরূপে, Edge Microgateway, OAuth2 অথেনটিকেশনের জন্য Apigee Edge-এ ডেপ্লয় করা একটি প্রক্সি ব্যবহার করে। আপনি যখন প্রথমবার edgemicro configure চালান, তখন এই প্রক্সিটি ডেপ্লয় করা হয়। আপনি এই প্রক্সির ডিফল্ট কনফিগারেশন পরিবর্তন করে একটি JSON Web Token (JWT)-এ কাস্টম ক্লেইমের জন্য সাপোর্ট যোগ করতে, টোকেনের মেয়াদ শেষ হওয়ার সময় নির্ধারণ করতে এবং রিফ্রেশ টোকেন তৈরি করতে পারেন। বিস্তারিত জানতে, GitHub-এ ` edgemicro-auth` পেজটি দেখুন।
কাস্টম অথেন্টিকেশন পরিষেবা ব্যবহার করে
ডিফল্টরূপে, Edge Microgateway OAuth2 অথেনটিকেশনের জন্য Apigee Edge-এ ডেপ্লয় করা একটি প্রক্সি ব্যবহার করে। আপনি যখন প্রথমবার edgemicro configure চালান, তখন এই প্রক্সিটি ডেপ্লয় করা হয়। ডিফল্টরূপে, এই প্রক্সির URL-টি Edge Microgateway কনফিগারেশন ফাইলে নিম্নরূপভাবে নির্দিষ্ট করা থাকে:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
আপনি যদি প্রমাণীকরণের জন্য আপনার নিজস্ব কাস্টম পরিষেবা ব্যবহার করতে চান, তাহলে আপনার পরিষেবাটিকে নির্দেশ করার জন্য কনফিগ ফাইলে থাকা authUri ভ্যালুটি পরিবর্তন করুন। উদাহরণস্বরূপ, আপনার এমন একটি পরিষেবা থাকতে পারে যা পরিচয় যাচাই করার জন্য LDAP ব্যবহার করে।
লগ ফাইল পরিচালনা করা
Edge Microgateway প্রতিটি অনুরোধ এবং প্রতিক্রিয়া সম্পর্কে তথ্য লগ করে। লগ ফাইলগুলি ডিবাগিং এবং সমস্যা সমাধানের জন্য দরকারী তথ্য প্রদান করে।
লগ ফাইলগুলি কোথায় সংরক্ষণ করা হয়
ডিফল্টরূপে, লগ ফাইলগুলো /var/tmp তে সংরক্ষিত হয়।
ডিফল্ট লগ ফাইল ডিরেক্টরি কীভাবে পরিবর্তন করবেন
যে ডিরেক্টরিতে লগ ফাইলগুলো সংরক্ষিত হয়, তা এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে নির্দিষ্ট করা থাকে। কনফিগারেশন পরিবর্তনের বিস্তারিত জানতে, “কনফিগারেশন পরিবর্তন করা” দেখুন।
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
ভিন্ন লগ ফাইল ডিরেক্টরি নির্দিষ্ট করতে dir মানটি পরিবর্তন করুন।
কনসোলে লগ পাঠান
আপনি লগিং এমনভাবে কনফিগার করতে পারেন যাতে লগ তথ্য কোনো লগ ফাইলের পরিবর্তে স্ট্যান্ডার্ড আউটপুটে পাঠানো হয়। এর জন্য to_console ফ্ল্যাগটি নিম্নরূপে true সেট করুন:
edgemicro:
logging:
to_console: true এই সেটিংটির মাধ্যমে লগগুলো স্ট্যান্ডার্ড আউটপুটে পাঠানো হবে। বর্তমানে, আপনি একই সাথে স্ট্যান্ডার্ড আউটপুট (stdout) এবং একটি লগ ফাইলে লগ পাঠাতে পারবেন না।
লগিং লেভেল কীভাবে সেট করবেন
আপনি এই লগ লেভেলগুলো সেট করতে পারেন: info , warn , এবং error । info লেভেলটি ব্যবহার করার পরামর্শ দেওয়া হয়। এটি সমস্ত API অনুরোধ এবং প্রতিক্রিয়া লগ করে এবং এটিই ডিফল্ট।
লগ ব্যবধান কীভাবে পরিবর্তন করবেন
আপনি Edge Microgateway কনফিগারেশন ফাইলে এই ব্যবধানগুলো নির্ধারণ করতে পারেন। কনফিগারেশন পরিবর্তনের বিষয়ে বিস্তারিত জানতে, “কনফিগারেশন পরিবর্তন করা” দেখুন।
পরিবর্তনযোগ্য বৈশিষ্ট্যগুলো হলো:
- stats_log_interval : (ডিফল্ট: ৬০) ব্যবধান, সেকেন্ডে, যখন পরিসংখ্যান রেকর্ডটি এপিআই লগ ফাইলে লেখা হয়।
- rotate_interval : (ডিফল্ট: ২৪) লগ ফাইল ঘোরানোর ব্যবধান, ঘণ্টায়। উদাহরণস্বরূপ:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
দ্রষ্টব্য: আর্কাইভ করা লগ ফাইলগুলো সংকুচিত করা হয় না। নির্দিষ্ট সময় অন্তর শুরু হলে, একটি নতুন টাইমস্ট্যাম্পসহ একটি নতুন লগ ফাইল তৈরি হয়।
লগ ফাইল রক্ষণাবেক্ষণের ভালো অভ্যাস
সময়ের সাথে সাথে লগ ফাইলের ডেটা জমা হতে থাকায়, Apigee আপনাকে নিম্নলিখিত পদ্ধতিগুলো অবলম্বন করার পরামর্শ দেয়:
- যেহেতু লগ ফাইলগুলো বেশ বড় হয়ে যেতে পারে, তাই নিশ্চিত করুন যে লগ ফাইল ডিরেক্টরিতে পর্যাপ্ত জায়গা আছে। নিম্নলিখিত বিভাগগুলো দেখুন: লগ ফাইলগুলো কোথায় সংরক্ষিত হয় এবং কীভাবে ডিফল্ট লগ ফাইল ডিরেক্টরি পরিবর্তন করবেন ।
- সপ্তাহে অন্তত একবার লগ ফাইলগুলো মুছে ফেলুন অথবা একটি আলাদা আর্কাইভ ডিরেক্টরিতে সরিয়ে নিন।
- আপনার নীতি যদি লগ মুছে ফেলা হয়, তাহলে আপনি পুরোনো লগগুলো সরিয়ে (পরিষ্কার করতে)
edgemicro log -cCLI কমান্ডটি ব্যবহার করতে পারেন।
লগ ফাইলের নামকরণের নিয়ম
প্রতিটি Edge Microgateway ইনস্ট্যান্স তিন ধরনের লগ ফাইল তৈরি করে:
- api - Edge Microgateway-এর মাধ্যমে প্রবাহিত সমস্ত অনুরোধ এবং প্রতিক্রিয়া লগ করে। API কাউন্টার (পরিসংখ্যান) এবং ত্রুটিগুলিও এই ফাইলে লগ করা হয়।
- err - stderr-এ পাঠানো যেকোনো কিছু লগ করে।
- out - stdout-এ পাঠানো যেকোনো কিছু লগ করে।
এই হলো নামকরণের রীতি:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
উদাহরণস্বরূপ:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
লগ ফাইলের বিষয়বস্তু সম্পর্কে
যোগ করা হয়েছে: v2.3.3
ডিফল্টরূপে, লগিং পরিষেবা ডাউনলোড করা প্রক্সি, প্রোডাক্ট এবং JSON ওয়েব টোকেন (JWT)-এর JSON বাদ দেয়। আপনি যদি এই অবজেক্টগুলো লগ ফাইলে আউটপুট করতে চান, তাহলে Edge Microgateway চালু করার সময় DEBUG=* সেট করুন। উদাহরণস্বরূপ:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
দ্রষ্টব্য: উইন্ডোজে, SET DEBUG=* ব্যবহার করুন।
'api' লগ ফাইলের বিষয়বস্তু
'api' লগ ফাইলে Edge Microgateway-এর মাধ্যমে অনুরোধ এবং প্রতিক্রিয়ার প্রবাহ সম্পর্কে বিস্তারিত তথ্য থাকে। 'api' লগ ফাইলগুলোর নামকরণ এইভাবে করা হয়:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
Edge Microgateway-তে করা প্রতিটি অনুরোধের জন্য, 'api' লগ ফাইলে চারটি ইভেন্ট রেকর্ড করা হয়:
- ক্লায়েন্টের কাছ থেকে আগত অনুরোধ
- লক্ষ্যবস্তুর কাছে বহির্গামী অনুরোধ করা হয়েছে
- লক্ষ্যবস্তু থেকে আগত প্রতিক্রিয়া
- ক্লায়েন্টের কাছে বহির্গামী প্রতিক্রিয়া
লগ ফাইলগুলোকে আরও সংক্ষিপ্ত করার জন্য এই প্রতিটি আলাদা এন্ট্রিকে একটি সংক্ষিপ্ত সংকেতে উপস্থাপন করা হয়। এখানে চারটি ইভেন্টের প্রত্যেকটির প্রতিনিধিত্বকারী চারটি নমুনা এন্ট্রি দেওয়া হলো। লগ ফাইলে, এগুলো দেখতে এইরকম (লাইন নম্বরগুলো শুধুমাত্র ডকে রেফারেন্সের জন্য, এগুলো লগ ফাইলে দেখা যায় না)।
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
চলুন, এক এক করে সেগুলো দেখা যাক:
১. ক্লায়েন্টের কাছ থেকে আসা অনুরোধের নমুনা:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - এটি প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে এটি তথ্য, সতর্কতা বা ত্রুটি হতে পারে। পরিসংখ্যান রেকর্ডের জন্য এটি 'stats', সতর্কতার জন্য 'warn', বা ত্রুটির জন্য 'error' হতে পারে।
- req - ঘটনাটিকে শনাক্ত করে। এক্ষেত্রে, ক্লায়েন্টের পক্ষ থেকে করা অনুরোধ।
- m - অনুরোধে ব্যবহৃত HTTP ভার্ব।
- u - URL-এর বেসপ্যাথের পরবর্তী অংশ।
- h - যে হোস্ট এবং পোর্ট নম্বরে Edge Microgateway শুনছে।
- r - দূরবর্তী হোস্ট এবং পোর্ট যেখান থেকে ক্লায়েন্টের অনুরোধটি পাঠানো হয়েছিল।
- i - অনুরোধ আইডি। চারটি ইভেন্ট এন্ট্রিই এই আইডিটি ব্যবহার করবে। প্রতিটি অনুরোধকে একটি অনন্য অনুরোধ আইডি দেওয়া হয়। অনুরোধ আইডি দ্বারা লগ রেকর্ডগুলোর মধ্যে সম্পর্ক স্থাপন করলে টার্গেটের লেটেন্সি সম্পর্কে মূল্যবান ধারণা পাওয়া যেতে পারে।
- d - এজ মাইক্রোগেটওয়ে দ্বারা অনুরোধটি গৃহীত হওয়ার পর থেকে অতিবাহিত সময় (মিলিসেকেন্ডে)। উপরের উদাহরণে, অনুরোধ ০-এর জন্য টার্গেটের প্রতিক্রিয়া ৭ মিলিসেকেন্ড পরে গৃহীত হয়েছিল (লাইন ৩), এবং অতিরিক্ত ৪ মিলিসেকেন্ড পরে প্রতিক্রিয়াটি ক্লায়েন্টের কাছে পাঠানো হয়েছিল (লাইন ৪)। অন্য কথায়, মোট অনুরোধ লেটেন্সি ছিল ১১ মিলিসেকেন্ড, যার মধ্যে ৭ মিলিসেকেন্ড সময় নিয়েছিল টার্গেট এবং ৪ মিলিসেকেন্ড সময় নিয়েছিল এজ মাইক্রোগেটওয়ে নিজে।
২. লক্ষ্যবস্তুর কাছে পাঠানো বহির্গামী অনুরোধের নমুনা:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - এটি প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে এটি তথ্য, সতর্কতা বা ত্রুটি হতে পারে। পরিসংখ্যান রেকর্ডের জন্য এটি 'stats', সতর্কতার জন্য 'warn', বা ত্রুটির জন্য 'error' হতে পারে।
- treq - ইভেন্টটি শনাক্ত করে। এক্ষেত্রে, এটি হলো টার্গেট রিকোয়েস্ট।
- m - লক্ষ্য অনুরোধে ব্যবহৃত HTTP ভার্ব।
- u - URL-এর বেসপ্যাথের পরবর্তী অংশ।
- h - ব্যাকএন্ড টার্গেটের হোস্ট এবং পোর্ট নম্বর।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রিই এই আইডিটি ব্যবহার করবে।
৩. লক্ষ্যবস্তু থেকে আগত প্রতিক্রিয়ার নমুনা
1436403888672 info tres s=200, d=7, i=0
1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - এটি প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে এটি তথ্য, সতর্কতা বা ত্রুটি হতে পারে। পরিসংখ্যান রেকর্ডের জন্য এটি 'stats', সতর্কতার জন্য 'warn', বা ত্রুটির জন্য 'error' হতে পারে।
- tres - ঘটনাটিকে চিহ্নিত করে। এক্ষেত্রে, লক্ষ্য প্রতিক্রিয়া।
- s - HTTP প্রতিক্রিয়ার স্থিতি।
- d - সময়কাল (মিলিসেকেন্ডে)। টার্গেট কর্তৃক এপিআই কলটি সম্পন্ন হতে যে সময় লাগে।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রিই এই আইডিটি ব্যবহার করবে।
৪. ক্লায়েন্টের প্রতি বহির্গামী প্রতিক্রিয়ার নমুনা
1436403888676 info res s=200, d=11, i=0
1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - এটি প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে এটি তথ্য, সতর্কতা বা ত্রুটি হতে পারে। পরিসংখ্যান রেকর্ডের জন্য এটি 'stats', সতর্কতার জন্য 'warn', বা ত্রুটির জন্য 'error' হতে পারে।
- res - ঘটনাটিকে শনাক্ত করে। এক্ষেত্রে, ক্লায়েন্টের প্রতি প্রতিক্রিয়া।
- s - HTTP প্রতিক্রিয়ার স্থিতি।
- d - সময়কাল, মিলিসেকেন্ডে। এটি হলো এপিআই কলটির মোট সময়, যার মধ্যে টার্গেট এপিআই এবং এজ মাইক্রোগেটওয়ের নিজস্ব সময় অন্তর্ভুক্ত।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রিই এই আইডিটি ব্যবহার করবে।
লগ ফাইল সময়সূচী
`rotate_interval` কনফিগারেশন অ্যাট্রিবিউট দ্বারা নির্দিষ্ট বিরতিতে লগ ফাইলগুলি ঘোরানো হয়। ঘূর্ণন বিরতির মেয়াদ শেষ না হওয়া পর্যন্ত একই লগ ফাইলে এন্ট্রি যুক্ত হতে থাকবে। তবে, প্রতিবার Edge Microgateway পুনরায় চালু হলে এটি একটি নতুন UID পায় এবং এই UID দিয়ে নতুন এক সেট লগ ফাইল তৈরি করে। আরও দেখুন ‘লগ ফাইল রক্ষণাবেক্ষণের উত্তম অভ্যাস’ ।
এজ মাইক্রোগেটওয়ে কনফিগারেশন রেফারেন্স
কনফিগারেশন ফাইলের অবস্থান
এই বিভাগে বর্ণিত কনফিগারেশন অ্যাট্রিবিউটগুলো এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে অবস্থিত। কনফিগারেশন পরিবর্তনের বিষয়ে বিস্তারিত জানতে, “কনফিগারেশন পরিবর্তন করা” দেখুন।
edge_config অ্যাট্রিবিউট
এই সেটিংসগুলো Edge Microgateway ইনস্ট্যান্স এবং Apigee Edge-এর মধ্যেকার মিথস্ক্রিয়া কনফিগার করতে ব্যবহৃত হয়।
- বুটস্ট্র্যাপ : (ডিফল্ট: কোনোটি নয়) একটি ইউআরএল যা Apigee Edge-এ চলমান একটি Edge Microgateway-নির্দিষ্ট পরিষেবাকে নির্দেশ করে। Edge Microgateway, Apigee Edge-এর সাথে যোগাযোগের জন্য এই পরিষেবাটি ব্যবহার করে। আপনি যখন পাবলিক/প্রাইভেট কী পেয়ার তৈরি করার জন্য `
edgemicro genkeysকমান্ডটি চালান, তখন এই ইউআরএলটি ফেরত আসে। বিস্তারিত জানার জন্য “ Setting up and configuring Edge Microgateway” দেখুন। - jwt_public_key : (ডিফল্ট: কোনোটি নয়) একটি URL যা Apigee Edge-এ ডেপ্লয় করা Edge Microgateway প্রক্সিকে নির্দেশ করে। এই প্রক্সিটি ক্লায়েন্টদের স্বাক্ষরিত অ্যাক্সেস টোকেন দেওয়ার জন্য একটি অথেনটিকেশন এন্ডপয়েন্ট হিসেবে কাজ করে। প্রক্সি ডেপ্লয় করার জন্য ` edgemicro configure` কমান্ডটি চালালে এই URL-টি ফেরত আসে। বিস্তারিত জানতে “ Setting up and configuring Edge Microgateway” দেখুন।
এজমাইক্রো বৈশিষ্ট্য
এই সেটিংগুলো এজ মাইক্রোগেটওয়ে প্রসেসকে কনফিগার করে।
- পোর্ট : (ডিফল্ট: ৮০০০) যে পোর্ট নম্বরে এজ মাইক্রোগেটওয়ে প্রসেসটি শোনে।
- max_connections : (ডিফল্ট: -1) এটি নির্দিষ্ট করে যে Edge Microgateway একই সাথে সর্বোচ্চ কতগুলো ইনকামিং কানেকশন গ্রহণ করতে পারবে। এই সংখ্যা অতিক্রম করা হলে, নিম্নলিখিত স্ট্যাটাসটি ফেরত দেওয়া হয়:
res.statusCode = 429; // Too many requests - max_connections_hard : (ডিফল্ট: -1) সংযোগটি বন্ধ করে দেওয়ার আগে Edge Microgateway একযোগে সর্বাধিক যতগুলো অনুরোধ গ্রহণ করতে পারে। এই সেটিংটি ডিনায়াল অফ সার্ভিস আক্রমণ প্রতিরোধ করার জন্য তৈরি করা হয়েছে। সাধারণত, এটিকে max_connections-এর চেয়ে বড় কোনো সংখ্যায় সেট করুন।
- লগিং :
- স্তর : (ডিফল্ট: ত্রুটি)
- তথ্য - একটি এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সের মধ্য দিয়ে প্রবাহিত সমস্ত অনুরোধ এবং প্রতিক্রিয়া লগ করে।
- সতর্ক - শুধুমাত্র সতর্কতামূলক বার্তা লগ করে।
- ত্রুটি - শুধুমাত্র ত্রুটির বার্তা লগ করে।
- ডিরেক্টরি : (ডিফল্ট: /var/tmp) যে ডিরেক্টরিতে লগ ফাইলগুলো সংরক্ষিত হয়।
- stats_log_interval : (ডিফল্ট: ৬০) ব্যবধান, সেকেন্ডে, যখন পরিসংখ্যান রেকর্ডটি এপিআই লগ ফাইলে লেখা হয়।
- rotate_interval : (ডিফল্ট: ২৪) লগ ফাইল ঘোরানোর ব্যবধান, ঘণ্টায়।
- স্তর : (ডিফল্ট: ত্রুটি)
- প্লাগইন : প্লাগইনগুলি এজ মাইক্রোগেটওয়েতে কার্যকারিতা যোগ করে। প্লাগইন তৈরি করার বিষয়ে বিস্তারিত জানতে, কাস্টম প্লাগইন তৈরি করা দেখুন।
- dir : ./gateway ডিরেক্টরি থেকে ./plugins ডিরেক্টরি পর্যন্ত একটি আপেক্ষিক পথ, অথবা একটি পরম পথ।
- ক্রম : আপনার এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সে যোগ করার জন্য প্লাগইন মডিউলগুলির একটি তালিকা। মডিউলগুলি এখানে নির্দিষ্ট করা ক্রমেই কার্যকর হবে।
- ডিবাগ: এজ মাইক্রোগেটওয়ে প্রসেসে রিমোট ডিবাগিং যোগ করে।
- পোর্ট : যে পোর্ট নম্বরে লিসেন করতে হবে। উদাহরণস্বরূপ, আপনার IDE ডিবাগারকে এই পোর্টে লিসেন করার জন্য সেট করুন।
- args : ডিবাগ প্রক্রিয়ার জন্য আর্গুমেন্ট। উদাহরণস্বরূপ:
args --nolazy
- config_change_poll_interval: (ডিফল্ট: ৬০০ সেকেন্ড) Edge Microgateway পর্যায়ক্রমে একটি নতুন কনফিগারেশন লোড করে এবং কোনো পরিবর্তন হলে রিলোড করে। এই পোলিং Edge-এ করা যেকোনো পরিবর্তন (যেমন প্রোডাক্ট, মাইক্রোগেটওয়ে-অ্যাওয়্যার প্রক্সি ইত্যাদির পরিবর্তন) এবং সেইসাথে স্থানীয় কনফিগারেশন ফাইলে করা পরিবর্তনগুলোও শনাক্ত করে।
- disable_config_poll_interval: (ডিফল্ট: false) স্বয়ংক্রিয় পরিবর্তন পোলিং বন্ধ করতে এটিকে true- তে সেট করুন।
- request_timeout : নির্দিষ্ট অনুরোধগুলির জন্য একটি টাইমআউট নির্ধারণ করে। টাইমআউটটি সেকেন্ডে সেট করা হয়। টাইমআউট হলে, Edge Microgateway একটি 504 স্ট্যাটাস কোড দিয়ে সাড়া দেয়। (v2.4.x-এ যোগ করা হয়েছে)
হেডার অ্যাট্রিবিউট
এই সেটিংসগুলো নির্ধারণ করে যে নির্দিষ্ট HTTP হেডারগুলোকে কীভাবে বিবেচনা করা হবে।
- x-forwarded-for : (ডিফল্ট: true) টার্গেটে x-forwarded-for হেডার পাঠানো আটকাতে এটিকে false-এ সেট করুন। মনে রাখবেন, যদি রিকোয়েস্টে কোনো x-forwarded-for হেডার থাকে, তাহলে Edge Analytics-এ এর ভ্যালু client-ip ভ্যালুতে সেট করা হবে।
- x-forwarded-host : (ডিফল্ট: true) টার্গেটে x-forwarded-host হেডার পাঠানো আটকাতে এটিকে false সেট করুন।
- x-request-id : (ডিফল্ট: true) টার্গেটে x-request-id হেডার পাঠানো আটকাতে এটিকে false সেট করুন।
- x-response-time : (ডিফল্ট: true) টার্গেটে x-response-time হেডার পাঠানো আটকাতে এটিকে false সেট করুন।
- via : (ডিফল্ট: true) টার্গেটে via হেডার পাঠানো আটকাতে এটিকে false সেট করুন।
ওঅথ অ্যাট্রিবিউট
এই সেটিংগুলো নির্ধারণ করে যে এজ মাইক্রোগেটওয়ে কীভাবে ক্লায়েন্ট প্রমাণীকরণ প্রয়োগ করবে।
- allowNoAuthorization : (ডিফল্ট: false) যদি এটি true সেট করা হয়, তাহলে API কলগুলো কোনো Authorization হেডার ছাড়াই Edge Microgateway-এর মধ্য দিয়ে যেতে পারবে। Authorization হেডার আবশ্যক করতে এটি false সেট করুন (ডিফল্ট)।
- allowInvalidAuthorization : (ডিফল্ট: false) যদি এটি true সেট করা হয়, তাহলে Authorization হেডারে দেওয়া টোকেনটি অবৈধ বা মেয়াদোত্তীর্ণ হলেও API কলগুলোকে পাস করার অনুমতি দেওয়া হবে। বৈধ টোকেন আবশ্যক করতে এটি false সেট করুন (ডিফল্ট)।
- অথরাইজেশন-হেডার : (ডিফল্ট: Authorization: Bearer) এজ মাইক্রোগেটওয়েতে অ্যাক্সেস টোকেন পাঠানোর জন্য ব্যবহৃত হেডার। যদি টার্গেটের অন্য কোনো উদ্দেশ্যে Authorization হেডারটি ব্যবহার করার প্রয়োজন হয়, তবে আপনি ডিফল্টটি পরিবর্তন করতে চাইতে পারেন।
- api-key-header : (ডিফল্ট: x-api-key) Edge Microgateway-তে একটি API কী পাঠানোর জন্য ব্যবহৃত হেডার বা কোয়েরি প্যারামিটারের নাম। আরও দেখুন একটি API কী ব্যবহার করা ।
- keepAuthHeader : (ডিফল্ট: false) যদি এটি true সেট করা হয়, তাহলে অনুরোধে পাঠানো Authorization হেডারটি টার্গেটে পাঠানো হয় (এটি সংরক্ষিত থাকে)।
- allowOAuthOnly -- যদি এটি 'true' সেট করা হয়, তাহলে প্রতিটি API-কে অবশ্যই একটি Bearer Access Token সহ Authorization হেডার বহন করতে হবে। এটি আপনাকে শুধুমাত্র OAuth নিরাপত্তা মডেলকে অনুমতি দেওয়ার সুযোগ দেয় (পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যতা বজায় রেখে)। (4.2.x সংস্করণে যুক্ত করা হয়েছে)
- allowAPIKeyOnly -- যদি এটি 'true' সেট করা হয়, তাহলে প্রতিটি API-কে অবশ্যই একটি x-api-key হেডার (অথবা একটি কাস্টম লোকেশন) এবং একটি API Key বহন করতে হবে। এটি আপনাকে শুধুমাত্র API key নিরাপত্তা মডেলকে অনুমতি দেওয়ার সুযোগ দেয় (ব্যাকওয়ার্ড কম্প্যাটিবিলিটি বজায় রেখে)। (4.2.x সংস্করণে যোগ করা হয়েছে)
প্লাগইন-নির্দিষ্ট বৈশিষ্ট্য
প্রতিটি প্লাগইনের কনফিগারযোগ্য অ্যাট্রিবিউটগুলোর বিশদ বিবরণের জন্য ‘প্লাগইন ব্যবহার’ দেখুন।
প্রক্সি ফিল্টার করা
একটি Edge Microgateway ইনস্ট্যান্স কোন কোন মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি প্রসেস করবে, তা আপনি ফিল্টার করতে পারেন। Edge Microgateway চালু হওয়ার সময়, এটি যে অর্গানাইজেশনের সাথে যুক্ত, সেখানকার সমস্ত মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি ডাউনলোড করে। মাইক্রোগেটওয়ে কোন কোন প্রক্সি প্রসেস করবে তা সীমিত করতে নিম্নলিখিত কনফিগারেশনটি ব্যবহার করুন। উদাহরণস্বরূপ, এই কনফিগারেশনটি মাইক্রোগেটওয়ের প্রসেস করার জন্য প্রক্সিগুলোকে তিনটিতে সীমিত করে: edgemicro_proxy-1 , edgemicro_proxy-2 , এবং edgemicro_proxy-3 ।
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
মাস্কিং অ্যানালিটিক্স ডেটা
নিম্নলিখিত কনফিগারেশনটি এজ অ্যানালিটিক্সে রিকোয়েস্ট পাথের তথ্য প্রদর্শিত হওয়া থেকে বিরত রাখে। রিকোয়েস্ট URI এবং/অথবা রিকোয়েস্ট পাথ মাস্ক করতে মাইক্রোগেটওয়ে কনফিগারেশনে নিম্নলিখিতটি যোগ করুন। মনে রাখবেন যে, URI-টি রিকোয়েস্টের হোস্টনেম এবং পাথ অংশ নিয়ে গঠিত।
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
কোম্পানির ফায়ারওয়ালের পিছনে এজ মাইক্রোগেটওয়ে স্থাপন করা
v4.2.x সমর্থিত
যদি Edge Microgateway কোনো ফায়ারওয়ালের পিছনে ইনস্টল করা থাকে, তাহলে গেটওয়েটি Apigee Edge-এর সাথে যোগাযোগ করতে সক্ষম নাও হতে পারে। এই ক্ষেত্রে, আপনি দুটি বিকল্প বিবেচনা করতে পারেন:
বিকল্প ১:
প্রথম উপায়টি হলো মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে edgemicro: proxy_tunnel অপশনটিকে true-তে সেট করা:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: trueযখন proxy_tunnel-এর মান true হয়, Edge Microgateway একটিমাত্র TCP সংযোগের মাধ্যমে HTTP অনুরোধগুলিকে টানেল করার জন্য HTTP CONNECT পদ্ধতি ব্যবহার করে। (প্রক্সি কনফিগার করার জন্য ব্যবহৃত এনভায়রনমেন্ট ভেরিয়েবলগুলিতে TLS সক্রিয় করা থাকলেও একই নিয়ম প্রযোজ্য হয়)।
বিকল্প ২:
দ্বিতীয় বিকল্পটি হলো একটি প্রক্সি নির্দিষ্ট করা এবং মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে proxy_tunnel-কে false সেট করা। উদাহরণস্বরূপ:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: falseএক্ষেত্রে, আপনি যে প্রতিটি HTTP প্রক্সি ব্যবহার করতে চান তার জন্য হোস্ট নিয়ন্ত্রণ করতে, অথবা কোন হোস্টগুলো Edge Microgateway প্রক্সি পরিচালনা করবে না তা নির্ধারণ করতে, নিম্নলিখিত ভেরিয়েবলগুলো সেট করতে পারেন: HTTP_PROXY , HTTPS_PROXY , এবং NO_PROXY ।
আপনি NO_PROXY-কে কমা দিয়ে বিভক্ত এমন ডোমেইনগুলোর একটি তালিকা হিসেবে সেট করতে পারেন, যেগুলোতে Edge Microgateway প্রক্সি করবে না। উদাহরণস্বরূপ:
export NO_PROXY='localhost,localhost:8080'
HTTP_PROXY এবং HTTPS_PROXY-কে সেই HTTP প্রক্সি এন্ডপয়েন্টে সেট করুন যেখানে Edge Microgateway মেসেজ পাঠাতে পারে। উদাহরণস্বরূপ:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
এই ভেরিয়েবলগুলো সম্পর্কে আরও তথ্যের জন্য দেখুন:
https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
আরও দেখুন
Apigee কমিউনিটিতে কোম্পানির ফায়ারওয়ালের পিছনে Edge Microgateway কীভাবে সেট আপ করবেন
মাইক্রোগেটওয়ে-সচেতন প্রক্সিতে ওয়াইল্ডকার্ড ব্যবহার
আপনি একটি edgemicro_* (মাইক্রোগেটওয়ে-অ্যাওয়ার) প্রক্সির বেস পাথে এক বা একাধিক "*" ওয়াইল্ডকার্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, /team/*/members- এর একটি বেস পাথ ক্লায়েন্টদেরকে https://[host]/team/blue/members এবং https://[host]/team/green/members কল করার সুযোগ দেয়, যার জন্য নতুন টিমগুলোকে সাপোর্ট করার জন্য আপনাকে নতুন এপিআই প্রক্সি তৈরি করতে হয় না। উল্লেখ্য যে /**/ সমর্থিত নয়।
গুরুত্বপূর্ণ: Apigee বেস পাথের প্রথম উপাদান হিসেবে ওয়াইল্ডকার্ড "*" ব্যবহার সমর্থন করে না। উদাহরণস্বরূপ, এটি সমর্থিত নয়: /*/ search।
ডিবাগিং এবং ট্রাবলশুটিং
ডিবাগারের সাথে সংযোগ স্থাপন
আপনি নোড-ইনস্পেক্টরের মতো একটি ডিবাগারের সাহায্যে এজ মাইক্রোগেটওয়ে চালাতে পারেন। এটি কাস্টম প্লাগইনগুলির সমস্যা সমাধান এবং ডিবাগ করার জন্য উপযোগী।
- Edge Microgateway ডিবাগ মোডে পুনরায় চালু করুন। এটি করার জন্য, স্টার্ট কমান্ডের শুরুতে
DEBUG=*যোগ করুন। উদাহরণস্বরূপ:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7edদ্রষ্টব্য: উইন্ডোজে,
SET DEBUG=*ব্যবহার করুন। - আপনার ডিবাগারটি চালু করুন এবং ডিবাগিং প্রক্রিয়ার জন্য এটিকে নির্দিষ্ট পোর্ট নম্বরে শোনার জন্য সেট করুন।
- এখন আপনি Edge Microgateway কোডের প্রতিটি ধাপ পরীক্ষা করতে, ব্রেকপয়েন্ট সেট করতে, এক্সপ্রেশন পর্যবেক্ষণ করতে এবং আরও অনেক কিছু করতে পারবেন।
আপনি ডিবাগ মোড সম্পর্কিত সাধারণ Node.js ফ্ল্যাগগুলো নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, --nolazy অ্যাসিঙ্ক্রোনাস কোড ডিবাগ করতে সাহায্য করে।
লগ ফাইল পরীক্ষা করা হচ্ছে
যদি আপনার কোনো সমস্যা হয়, তাহলে কার্য সম্পাদনের বিবরণ এবং ত্রুটির তথ্যের জন্য লগ ফাইলগুলো অবশ্যই পরীক্ষা করুন। বিস্তারিত জানতে, ‘লগ ফাইল ব্যবস্থাপনা’ দেখুন।
এপিআই কী নিরাপত্তা ব্যবহার করে
এজ মাইক্রোগেটওয়েতে অনুরোধকারী ক্লায়েন্টদের প্রমাণীকরণের জন্য এপিআই কী একটি সহজ পদ্ধতি প্রদান করে। এজ মাইক্রোগেটওয়ে প্রমাণীকরণ প্রক্সি অন্তর্ভুক্ত রয়েছে এমন একটি Apigee Edge প্রোডাক্ট থেকে কনজিউমার কী (যাকে ক্লায়েন্ট আইডি-ও বলা হয়) ভ্যালুটি কপি করে আপনি একটি এপিআই কী পেতে পারেন।
কীগুলির ক্যাশিং
এপিআই কী-এর বিনিময়ে বেয়ারার টোকেন দেওয়া হয়, যা ক্যাশ করা থাকে। এজ মাইক্রোগেটওয়েতে আসা রিকোয়েস্টগুলোতে Cache-Control: no-cache হেডার সেট করে আপনি ক্যাশিং নিষ্ক্রিয় করতে পারেন।
OAuth2 টোকেন নিরাপত্তা ব্যবহার করে
প্রক্সি অনুরোধের সাথে OAuth টোকেন ব্যবহারের বিশদ বিবরণের জন্য, Secure Edge Microgateway দেখুন।
একটি এপিআই কী ব্যবহার করে
প্রক্সি অনুরোধের সাথে এপিআই কী ব্যবহার করার বিষয়ে বিস্তারিত জানতে, সিকিউর এজ মাইক্রোগেটওয়ে দেখুন।
এপিআই কী-এর নাম কনফিগার করা
ডিফল্টরূপে, এপিআই কী হেডার বা কোয়েরি প্যারামিটারের জন্য x-api-key নামটি ব্যবহৃত হয়। কনফিগারেশন ফাইলে আপনি এই ডিফল্টটি পরিবর্তন করতে পারেন, যেমনটি "কনফিগারেশন পরিবর্তন করা" অংশে ব্যাখ্যা করা হয়েছে। উদাহরণস্বরূপ, নামটি apiKey- তে পরিবর্তন করতে:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey