আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
এজ মাইক্রোগেটওয়ে v. 3.3.x
এজ মাইক্রোগেটওয়ে কীভাবে পরিচালনা এবং কনফিগার করতে হয় এই বিষয়টি আলোচনা করে।
আপনার ইন্টারনেট সংযোগ থাকলে এজ মাইক্রোগেটওয়ে আপগ্রেড করা হচ্ছে
এই বিভাগটি ব্যাখ্যা করে কিভাবে এজ মাইক্রোগেটওয়ের একটি বিদ্যমান ইনস্টলেশন আপগ্রেড করতে হয়। আপনি যদি ইন্টারনেট সংযোগ ছাড়াই কাজ করেন, দেখুন আমি কি ইন্টারনেট সংযোগ ছাড়া এজ মাইক্রোগেটওয়ে ইনস্টল করতে পারি? .
Apigee আপনাকে আপনার উৎপাদন পরিবেশ আপগ্রেড করার আগে নতুন সংস্করণের সাথে আপনার বিদ্যমান কনফিগারেশন পরীক্ষা করার পরামর্শ দেয়।
- এজ মাইক্রোগেটওয়ের সর্বশেষ সংস্করণে আপগ্রেড করতে নিম্নলিখিত
npm
কমান্ডটি চালান:npm upgrade edgemicro -g
এজ মাইক্রোগেটওয়ের একটি নির্দিষ্ট সংস্করণ ইনস্টল করতে, আপনাকে ইনস্টল কমান্ডে সংস্করণ নম্বর উল্লেখ করতে হবে। উদাহরণস্বরূপ, 3.2.3 সংস্করণে ইনস্টল করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
npm install edgemicro@3.2.3 -g
- সংস্করণ নম্বর পরীক্ষা করুন. উদাহরণস্বরূপ, যদি আপনি সংস্করণ 3.2.3 ইনস্টল করেন:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.2.3
- অবশেষে, edgemicro-auth প্রক্সির সর্বশেষ সংস্করণে আপগ্রেড করুন:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
কনফিগারেশন পরিবর্তন করা
আপনার যে কনফিগারেশন ফাইলগুলি সম্পর্কে জানতে হবে তার মধ্যে রয়েছে:
- ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
- একটি নতুন আরম্ভকৃত এজ মাইক্রোগেটওয়ে উদাহরণের জন্য ডিফল্ট কনফিগার ফাইল
- চলমান উদাহরণের জন্য ডায়নামিক কনফিগারেশন ফাইল
এই বিভাগে এই ফাইলগুলি এবং সেগুলি পরিবর্তন করার বিষয়ে আপনার যা জানা দরকার তা নিয়ে আলোচনা করা হয়েছে৷
ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
আপনি যখন এজ মাইক্রোগেটওয়ে ইনস্টল করেন, তখন একটি ডিফল্ট সিস্টেম কনফিগারেশন ফাইল এখানে রাখা হয়:
prefix/lib/node_modules/edgemicro/config/default.yaml
যেখানে prefix হল npm
উপসর্গ ডিরেক্টরি। আপনি এই ডিরেক্টরিটি সনাক্ত করতে না পারলে এজ মাইক্রোগেটওয়ে কোথায় ইনস্টল করা আছে তা দেখুন।
আপনি যদি সিস্টেম কনফিগার ফাইলটি পরিবর্তন করেন তবে আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ে পুনরায় চালু করতে হবে, পুনরায় কনফিগার করতে হবে এবং পুনরায় চালু করতে হবে:
edgemicro initedgemicro configure [params]
edgemicro start [params]
নতুন আরম্ভ করা এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলির জন্য ডিফল্ট কনফিগার ফাইল
আপনি যখন edgemicro init
চালান, তখন সিস্টেম কনফিগার ফাইল (উপরে বর্ণিত), default.yaml
, ~/.edgemicro
ডিরেক্টরিতে স্থাপন করা হয়।
আপনি যদি ~/.edgemicro
এ কনফিগার ফাইলটি পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ে পুনরায় কনফিগার করে পুনরায় চালু করতে হবে:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
চলমান উদাহরণের জন্য ডায়নামিক কনফিগারেশন ফাইল
আপনি যখন edgemicro configure [params]
চালান, তখন ~/.edgemicro
এ একটি ডায়নামিক কনফিগারেশন ফাইল তৈরি হয়। এই প্যাটার্ন অনুসারে ফাইলটির নামকরণ করা হয়েছে: org - env -config.yaml
, যেখানে org এবং env হল আপনার Apigee Edge প্রতিষ্ঠান এবং পরিবেশের নাম। আপনি কনফিগারেশন পরিবর্তন করতে এই ফাইলটি ব্যবহার করতে পারেন, এবং তারপর শূন্য-ডাউনটাইম দিয়ে পুনরায় লোড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি প্লাগইন যোগ করেন এবং কনফিগার করেন, তাহলে নিচের ব্যাখ্যা অনুযায়ী কোনো ডাউনটাইম খরচ না করে আপনি কনফিগারেশনটি পুনরায় লোড করতে পারেন।
যদি এজ মাইক্রোগেটওয়ে চলছে (শূন্য-ডাউনটাইম বিকল্প):
- এজ মাইক্রোগেটওয়ে কনফিগারেশনটি পুনরায় লোড করুন:
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
কোথায়:
- $ORG হল আপনার এজ প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠানের প্রশাসক হতে হবে)।
- $ENV হল আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন "পরীক্ষা" বা "প্রোড")।
- $KEY হল পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া কী।
- $SECRET হল সেই কী যা পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া হয়েছিল।
যেমন
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
যদি এজ মাইক্রোগেটওয়ে বন্ধ করা হয়:
- এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন:
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
কোথায়:
- $ORG হল আপনার এজ প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠানের প্রশাসক হতে হবে)।
- $ENV হল আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন "পরীক্ষা" বা "প্রোড")।
- $KEY হল পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া কী।
- $SECRET হল সেই কী যা পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া হয়েছিল।
যেমন:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
এখানে একটি উদাহরণ কনফিগার ফাইল। কনফিগারেশন ফাইল সেটিংস সম্পর্কে বিশদ বিবরণের জন্য, এজ মাইক্রোগেটওয়ে কনফিগারেশন রেফারেন্স দেখুন।
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
পরিবেশের ভেরিয়েবল সেট করা
কমান্ড-লাইন ইন্টারফেস কমান্ডগুলি যেগুলির জন্য আপনার এজ সংস্থা এবং পরিবেশের জন্য মান প্রয়োজন এবং এজ মাইক্রোগেটওয়ে শুরু করার জন্য প্রয়োজনীয় কী এবং গোপনীয়তাগুলি এই পরিবেশ ভেরিয়েবলগুলিতে সংরক্ষণ করা যেতে পারে:
-
EDGEMICRO_ORG
-
EDGEMICRO_ENV
-
EDGEMICRO_KEY
-
EDGEMICRO_SECRET
এই ভেরিয়েবল সেট করা ঐচ্ছিক. আপনি যদি সেগুলি সেট করেন, আপনি এজ মাইক্রোগেটওয়ে কনফিগার করতে এবং শুরু করতে কমান্ড-লাইন ইন্টারফেস (CLI) ব্যবহার করার সময় আপনাকে তাদের মানগুলি নির্দিষ্ট করতে হবে না।
এজ মাইক্রোগেটওয়ে সার্ভারে SSL কনফিগার করা হচ্ছে
Apigee Edge Microgateway-এ TLS কনফিগার করার বিষয়ে জানতে নিম্নলিখিত ভিডিওগুলি দেখুন:
ভিডিও | বর্ণনা |
---|---|
1-ওয়ে নর্থবাউন্ড TLS কনফিগার করুন | Apigee Edge Microgateway-এ TLS কনফিগার করার বিষয়ে জানুন। এই ভিডিওটি TLS এবং এর গুরুত্ব সম্পর্কে একটি সংক্ষিপ্ত বিবরণ প্রদান করে, এজ মাইক্রোগেটওয়েতে TLS এর পরিচয় দেয় এবং প্রদর্শন করে কিভাবে উত্তরমুখী ওয়ান-ওয়ে TLS কনফিগার করতে হয়। |
2-ওয়ে নর্থবাউন্ড TLS কনফিগার করুন | Apigee Edge Microgateway-এ TLS কনফিগার করার জন্য এটি দ্বিতীয় ভিডিও। এই ভিডিওটি ব্যাখ্যা করে কিভাবে উত্তরমুখী 2-ওয়ে TLS কনফিগার করতে হয়। |
1-ওয়ে এবং 2-ওয়ে সাউথবাউন্ড TLS কনফিগার করুন | Apigee Edge Microgateway-এ TLS কনফিগার করার এই তৃতীয় ভিডিওটি ব্যাখ্যা করে কিভাবে সাউথবাউন্ড 1-ওয়ে এবং 2-ওয়ে TLS কনফিগার করতে হয়। |
আপনি SSL ব্যবহার করতে Microgateway সার্ভার কনফিগার করতে পারেন। উদাহরণস্বরূপ, SSL কনফিগার করা হলে, আপনি এজ মাইক্রোগেটওয়ের মাধ্যমে "https" প্রোটোকল সহ API কল করতে পারেন, যেমন:
https://localhost:8000/myapi
মাইক্রোগেটওয়ে সার্ভারে SSL কনফিগার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- Openssl ইউটিলিটি বা আপনার পছন্দের যে কোনও পদ্ধতি ব্যবহার করে একটি SSL শংসাপত্র এবং কী তৈরি করুন বা প্রাপ্ত করুন।
- এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে
edgemicro:ssl
অ্যাট্রিবিউট যোগ করুন। বিকল্পগুলির একটি সম্পূর্ণ তালিকার জন্য, নীচের টেবিলটি দেখুন। যেমন:
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
- এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। আপনি কোন কনফিগারেশন ফাইলটি সম্পাদনা করেছেন তার উপর নির্ভর করে কনফিগারেশন পরিবর্তন করার ক্ষেত্রে বর্ণিত ধাপগুলি অনুসরণ করুন: ডিফল্ট ফাইল বা রানটাইম কনফিগারেশন ফাইল।
এখানে SSL কনফিগার করা কনফিগার ফাইলের edgemicro
বিভাগের একটি উদাহরণ রয়েছে:
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 সংস্করণ 3। |
servername | SNI (সার্ভার নেম ইঙ্গিত) TLS এক্সটেনশনের সার্ভারের নাম। |
requestCert | 2-ওয়ে SSL এর জন্য সত্য; 1-ওয়ে SSL-এর জন্য মিথ্যা |
ক্লায়েন্ট SSL/TLS বিকল্প ব্যবহার করে
টার্গেট এন্ডপয়েন্টের সাথে সংযোগ করার সময় আপনি এজ মাইক্রোগেটওয়েকে একটি TLS বা SSL ক্লায়েন্ট হিসাবে কনফিগার করতে পারেন। মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে, SSL/TLS বিকল্প সেট করতে লক্ষ্য উপাদান ব্যবহার করুন। মনে রাখবেন যে আপনি একাধিক নির্দিষ্ট লক্ষ্য নির্দিষ্ট করতে পারেন। একটি মাল্টি-টার্গেট উদাহরণ নীচে অন্তর্ভুক্ত করা হয়েছে.
এই উদাহরণটি সেটিংস প্রদান করে যা সমস্ত হোস্টে প্রয়োগ করা হবে:
edgemicro: ... targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
এই উদাহরণে, সেটিংস শুধুমাত্র নির্দিষ্ট হোস্টে প্রয়োগ করা হয়:
edgemicro: ... 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 এর জন্য একটি উদাহরণ রয়েছে:
edgemicro: ... targets: - host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
যে ক্ষেত্রে আপনি একাধিক নির্দিষ্ট লক্ষ্যে TLS/SSL সেটিংস প্রয়োগ করতে চান, আপনাকে অবশ্যই কনফিগারেশনের প্রথম হোস্টটিকে "খালি" হিসাবে নির্দিষ্ট করতে হবে, যা সর্বজনীন অনুরোধগুলিকে সক্ষম করে এবং তারপরে যে কোনও ক্রমে নির্দিষ্ট হোস্টগুলিকে নির্দিষ্ট করে৷ এই উদাহরণে, সেটিংস একাধিক নির্দিষ্ট হোস্টে প্রয়োগ করা হয়:
targets: - host: ## Note that this value must be "empty" ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true - host: 'myserver1.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt rejectUnauthorized: true - host: 'myserver2.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt 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 সংস্করণ 3। |
servername | SNI (সার্ভার নেম ইঙ্গিত) TLS এক্সটেনশনের সার্ভারের নাম। |
edgemicro-auth প্রক্সি কাস্টমাইজ করা হচ্ছে
ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে OAuth2 প্রমাণীকরণের জন্য Apigee Edge-এ স্থাপন করা একটি প্রক্সি ব্যবহার করে। আপনি যখন প্রাথমিকভাবে edgemicro configure
চালান তখন এই প্রক্সিটি স্থাপন করা হয়। আপনি JSON ওয়েব টোকেন (JWT) তে কাস্টম দাবির জন্য সমর্থন যোগ করতে, টোকেনের মেয়াদ শেষ করতে এবং রিফ্রেশ টোকেন তৈরি করতে এই প্রক্সিটির ডিফল্ট কনফিগারেশন পরিবর্তন করতে পারেন। বিশদ বিবরণের জন্য, গিটহাবের এজমাইক্রো-প্রমাণ পৃষ্ঠাটি দেখুন।
একটি কাস্টম প্রমাণীকরণ পরিষেবা ব্যবহার করে৷
ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে OAuth2 প্রমাণীকরণের জন্য Apigee Edge-এ স্থাপন করা একটি প্রক্সি ব্যবহার করে। আপনি যখন প্রাথমিকভাবে edgemicro configure
চালান তখন এই প্রক্সিটি স্থাপন করা হয়। ডিফল্টরূপে, এই প্রক্সির URL এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে নিম্নরূপ নির্দিষ্ট করা হয়েছে:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
আপনি যদি প্রমাণীকরণ পরিচালনা করতে আপনার নিজস্ব কাস্টম পরিষেবা ব্যবহার করতে চান তবে আপনার পরিষেবার দিকে নির্দেশ করতে কনফিগার ফাইলে authUri
মান পরিবর্তন করুন। উদাহরণস্বরূপ, আপনার একটি পরিষেবা থাকতে পারে যা পরিচয় যাচাই করতে LDAP ব্যবহার করে।
লগ ফাইল পরিচালনা
এজ মাইক্রোগেটওয়ে প্রতিটি অনুরোধ এবং প্রতিক্রিয়া সম্পর্কে তথ্য লগ করে। লগ ফাইলগুলি ডিবাগিং এবং সমস্যা সমাধানের জন্য দরকারী তথ্য প্রদান করে।
যেখানে লগ ফাইল সংরক্ষণ করা হয়
ডিফল্টরূপে, লগ ফাইলগুলি /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
পতাকা সত্যে সেট করুন:
edgemicro: logging: to_console: true
এই সেটিং সহ, লগগুলি স্ট্যান্ডার্ড আউটে পাঠানো হবে। বর্তমানে, আপনি stdout এবং একটি লগ ফাইল উভয়েই লগ পাঠাতে পারবেন না।
লগিং লেভেল কিভাবে সেট করবেন
আপনি edgemicro
কনফিগারেশনে ব্যবহার করার জন্য লগ স্তর নির্দিষ্ট করুন। লগ লেভেলের সম্পূর্ণ তালিকা এবং তাদের বর্ণনার জন্য, এজমাইক্রো অ্যাট্রিবিউটস দেখুন।
উদাহরণস্বরূপ, নিম্নলিখিত কনফিগারেশনটি debug
জন্য লগিং স্তর সেট করে:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: debug dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
লগের ব্যবধান কিভাবে পরিবর্তন করবেন
আপনি এজ মাইক্রোগেটওয়ে কনফিগার ফাইলে এই ব্যবধানগুলি কনফিগার করতে পারেন। কনফিগারেশন পরিবর্তন করাও দেখুন।
কনফিগারযোগ্য বৈশিষ্ট্যগুলি হল:
- stats_log_interval : (ডিফল্ট: 60) ব্যবধান, সেকেন্ডে, যখন পরিসংখ্যান রেকর্ড API লগ ফাইলে লেখা হয়।
- rotate_interval : (ডিফল্ট: 24) ব্যবধান, ঘন্টার মধ্যে, যখন লগ ফাইলগুলি ঘোরানো হয়। যেমন:
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
কীভাবে কঠোর লগ ফাইলের অনুমতি শিথিল করবেন
ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে অ্যাপ্লিকেশন লগ ফাইল তৈরি করে ( api-log.log
) ফাইল অনুমতি স্তর 0600 এ সেট করে। এই অনুমতি স্তর বহিরাগত অ্যাপ্লিকেশন বা ব্যবহারকারীদের লগ ফাইল পড়ার অনুমতি দেয় না। এই কঠোর অনুমতি স্তরটি শিথিল করতে, logging:disableStrictLogFile
true
সেট করুন। যখন এই অ্যাট্রিবিউটটি true
হয়, তখন লগ ফাইলটি 0755 সেট করা ফাইলের অনুমতি দিয়ে তৈরি করা হয়। যদি false
বা যদি অ্যাট্রিবিউট দেওয়া না হয়, অনুমতি ডিফল্ট 0600-এ থাকে।
v3.2.3 এ যোগ করা হয়েছে।
যেমন:
edgemicro: logging: disableStrictLogFile: true
ভাল লগ ফাইল রক্ষণাবেক্ষণ অনুশীলন
লগ ফাইল ডেটা সময়ের সাথে জমা হওয়ার সাথে সাথে, Apigee সুপারিশ করে যে আপনি নিম্নলিখিত অনুশীলনগুলি গ্রহণ করুন:
- যেহেতু লগ ফাইলগুলি বেশ বড় হতে পারে, নিশ্চিত করুন যে লগ ফাইল ডিরেক্টরিতে পর্যাপ্ত স্থান রয়েছে। নিম্নলিখিত বিভাগগুলি দেখুন যেখানে লগ ফাইলগুলি সংরক্ষণ করা হয় এবং কীভাবে ডিফল্ট লগ ফাইল ডিরেক্টরি পরিবর্তন করতে হয় ।
- সপ্তাহে অন্তত একবার লগ ফাইলগুলিকে আলাদা আর্কাইভ ডিরেক্টরিতে মুছুন বা সরান৷
- যদি আপনার নীতি লগ মুছে ফেলা হয়, আপনি CLI কমান্ড
edgemicro log -c
ব্যবহার করতে পারেন পুরানো লগ অপসারণ (পরিষ্কার) করতে।
লগ ফাইল নামকরণ কনভেনশন
প্রতিটি এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স একটি .log
এক্সটেনশন সহ একটি লগ ফাইল তৈরি করে। লগ ফাইলের নামকরণের নিয়ম নিম্নরূপ:
edgemicro- HOST_NAME - INSTANCE_ID -api.log
যেমন:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
লগ ফাইল বিষয়বস্তু সম্পর্কে
যোগ করা হয়েছে: v2.3.3
ডিফল্টরূপে, লগিং পরিষেবা ডাউনলোড করা প্রক্সি, পণ্যের JSON এবং JSON ওয়েব টোকেন (JWT) বাদ দেয়। আপনি যদি এই বস্তুগুলিকে কনসোলে আউটপুট করতে চান, আপনি এজ মাইক্রোগেটওয়ে শুরু করার সময় কমান্ড-লাইন ফ্ল্যাগ DEBUG=*
সেট করুন। যেমন:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
"api" লগ ফাইলের বিষয়বস্তু
"api" লগ ফাইলটিতে এজ মাইক্রোগেটওয়ের মাধ্যমে অনুরোধ এবং প্রতিক্রিয়া প্রবাহ সম্পর্কে বিস্তারিত তথ্য রয়েছে। "api" লগ ফাইলগুলির নাম এইরকম:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
এজ মাইক্রোগেটওয়েতে করা প্রতিটি অনুরোধের জন্য, "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
আসুন এক এক করে সেগুলি দেখি:
1. ক্লায়েন্ট থেকে আগত অনুরোধের নমুনা:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - লগিং স্তর। এই মানটি লেনদেনের প্রসঙ্গে এবং
edgemicro
কনফিগারেশনে সেট করা লগিং স্তরের উপর নির্ভর করে। লগিং লেভেল কিভাবে সেট করবেন তা দেখুন। পরিসংখ্যান রেকর্ডের জন্য, স্তরটিstats
সেট করা হয়েছে। পরিসংখ্যান রেকর্ডগুলিstats_log_interval
কনফিগারেশনের সাথে সেট করা একটি নিয়মিত বিরতিতে রিপোর্ট করা হয়। লগ ইন্টারভাল কিভাবে পরিবর্তন করবেন তাও দেখুন। - req - ইভেন্ট সনাক্ত করে। এই ক্ষেত্রে, ক্লায়েন্ট থেকে অনুরোধ.
- m - অনুরোধে ব্যবহৃত HTTP ক্রিয়া।
- u - বেসপাথ অনুসরণ করে URL এর অংশ।
- h - হোস্ট এবং পোর্ট নম্বর যেখানে এজ মাইক্রোগেটওয়ে শুনছে।
- r - দূরবর্তী হোস্ট এবং পোর্ট যেখানে ক্লায়েন্ট অনুরোধ উদ্ভূত হয়েছে।
- i - অনুরোধ আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে। প্রতিটি অনুরোধ একটি অনন্য অনুরোধ আইডি বরাদ্দ করা হয়. রিকোয়েস্ট আইডির মাধ্যমে লগ রেকর্ডের সম্পর্ক টার্গেটের লেটেন্সি সম্পর্কে মূল্যবান অন্তর্দৃষ্টি দিতে পারে।
- d - এজ মাইক্রোগেটওয়ে অনুরোধটি পাওয়ার পর থেকে মিলিসেকেন্ডে সময়কাল। উপরের উদাহরণে, অনুরোধ 0 এর লক্ষ্যের প্রতিক্রিয়া 7 মিলিসেকেন্ড (লাইন 3) পরে গৃহীত হয়েছিল এবং অতিরিক্ত 4 মিলিসেকেন্ড (লাইন 4) পরে ক্লায়েন্টকে প্রতিক্রিয়া পাঠানো হয়েছিল। অন্য কথায়, মোট অনুরোধের বিলম্ব ছিল 11 মিলিসেকেন্ড, যার মধ্যে 7 মিলিসেকেন্ড টার্গেট এবং 4 মিলিসেকেন্ড এজ মাইক্রোগেটওয়ে নিজেই নিয়েছিল।
2. লক্ষ্যে করা বহির্গামী অনুরোধের নমুনা:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - লগিং স্তর। এই মানটি লেনদেনের প্রসঙ্গে এবং
edgemicro
কনফিগারেশনে সেট করা লগিং স্তরের উপর নির্ভর করে। লগিং লেভেল কিভাবে সেট করবেন তা দেখুন। পরিসংখ্যান রেকর্ডের জন্য, স্তরটিstats
সেট করা হয়েছে। পরিসংখ্যান রেকর্ডগুলিstats_log_interval
কনফিগারেশনের সাথে সেট করা একটি নিয়মিত বিরতিতে রিপোর্ট করা হয়। লগ ইন্টারভাল কিভাবে পরিবর্তন করবেন তাও দেখুন। - treq - ইভেন্ট সনাক্ত করে। এই ক্ষেত্রে, লক্ষ্য অনুরোধ.
- m - লক্ষ্য অনুরোধে ব্যবহৃত HTTP ক্রিয়া।
- u - বেসপাথ অনুসরণ করে URL এর অংশ।
- h - ব্যাকএন্ড টার্গেটের হোস্ট এবং পোর্ট নম্বর।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।
3. লক্ষ্য থেকে আগত প্রতিক্রিয়ার নমুনা
1436403888672 info tres s=200, d=7, i=0
1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - লগিং স্তর। এই মানটি লেনদেনের প্রসঙ্গে এবং
edgemicro
কনফিগারেশনে সেট করা লগিং স্তরের উপর নির্ভর করে। লগিং লেভেল কিভাবে সেট করবেন তা দেখুন। পরিসংখ্যান রেকর্ডের জন্য, স্তরটিstats
সেট করা হয়েছে। পরিসংখ্যান রেকর্ডগুলিstats_log_interval
কনফিগারেশনের সাথে সেট করা একটি নিয়মিত বিরতিতে রিপোর্ট করা হয়। লগ ইন্টারভাল কিভাবে পরিবর্তন করবেন তাও দেখুন। - tres - ঘটনা চিহ্নিত করে। এই ক্ষেত্রে, লক্ষ্য প্রতিক্রিয়া.
- s - HTTP প্রতিক্রিয়া স্থিতি।
- d - মিলিসেকেন্ডে সময়কাল। টার্গেট দ্বারা API কলের জন্য সময় লাগে।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।
4. ক্লায়েন্ট বহির্গামী প্রতিক্রিয়া নমুনা
1436403888676 info res s=200, d=11, i=0
1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প
- তথ্য - লগিং স্তর। এই মানটি লেনদেনের প্রসঙ্গে এবং
edgemicro
কনফিগারেশনে সেট করা লগিং স্তরের উপর নির্ভর করে। লগিং লেভেল কিভাবে সেট করবেন তা দেখুন। পরিসংখ্যান রেকর্ডের জন্য, স্তরটিstats
সেট করা হয়েছে। পরিসংখ্যান রেকর্ডগুলিstats_log_interval
কনফিগারেশনের সাথে সেট করা একটি নিয়মিত বিরতিতে রিপোর্ট করা হয়। লগ ইন্টারভাল কিভাবে পরিবর্তন করবেন তাও দেখুন। - res - ইভেন্ট সনাক্ত করে। এই ক্ষেত্রে, ক্লায়েন্টের প্রতিক্রিয়া।
- s - HTTP প্রতিক্রিয়া স্থিতি।
- d - মিলিসেকেন্ডে সময়কাল। টার্গেট এপিআই দ্বারা নেওয়া সময় এবং এজ মাইক্রোগেটওয়ে নিজেই যে সময় নেয় তা সহ এটি API কল দ্বারা নেওয়া মোট সময়।
- i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।
লগ ফাইল সময়সূচী
লগ ফাইলগুলি rotate_interval কনফিগারেশন বৈশিষ্ট্য দ্বারা নির্দিষ্ট ব্যবধানে ঘোরানো হয়। ঘূর্ণন ব্যবধানের মেয়াদ শেষ না হওয়া পর্যন্ত এন্ট্রি একই লগ ফাইলে যোগ করা অব্যাহত থাকবে। যাইহোক, প্রতিবার এজ মাইক্রোগেটওয়ে পুনরায় চালু হলে এটি একটি নতুন UID পায় এবং এই UID দিয়ে লগ ফাইলের একটি নতুন সেট তৈরি করে। এছাড়াও ভাল লগ ফাইল রক্ষণাবেক্ষণ অনুশীলন দেখুন.
ত্রুটি বার্তা
কিছু লগ এন্ট্রিতে ত্রুটি বার্তা থাকবে। কোথায় এবং কেন ত্রুটিগুলি ঘটছে তা সনাক্ত করতে সহায়তা করতে, এজ মাইক্রোগেটওয়ে ত্রুটির রেফারেন্স দেখুন।
এজ মাইক্রোগেটওয়ে কনফিগারেশন রেফারেন্স
কনফিগারেশন ফাইলের অবস্থান
এই বিভাগে বর্ণিত কনফিগারেশন বৈশিষ্ট্যগুলি এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে অবস্থিত। কনফিগারেশন পরিবর্তন করাও দেখুন।
edge_config বৈশিষ্ট্য
এই সেটিংস এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স এবং এপিজি এজ এর মধ্যে মিথস্ক্রিয়া কনফিগার করতে ব্যবহৃত হয়।
- বুটস্ট্র্যাপ : (ডিফল্ট: কোনোটিই নয়) একটি URL যা Apigee এজ-এ চলমান একটি এজ মাইক্রোগেটওয়ে-নির্দিষ্ট পরিষেবার দিকে নির্দেশ করে। এজ মাইক্রোগেটওয়ে অ্যাপিজি এজের সাথে যোগাযোগ করতে এই পরিষেবাটি ব্যবহার করে। আপনি যখন পাবলিক/প্রাইভেট কী পেয়ার জেনারেট করতে কমান্ডটি চালান তখন এই URLটি ফেরত দেওয়া হয়:
edgemicro genkeys
। বিস্তারিত জানার জন্য এজ মাইক্রোগেটওয়ে সেট আপ এবং কনফিগার করা দেখুন। - jwt_public_key : (ডিফল্ট: কোনটিই নয়) একটি ইউআরএল যা এজ মাইক্রোগেটওয়ে প্রক্সির দিকে নির্দেশ করে যা এপিজি এজ এ স্থাপন করা হয়েছে। এই প্রক্সি ক্লায়েন্টদের স্বাক্ষরিত অ্যাক্সেস টোকেন ইস্যু করার জন্য একটি প্রমাণীকরণ শেষ পয়েন্ট হিসাবে কাজ করে। আপনি যখন প্রক্সি স্থাপনের কমান্ডটি চালান তখন এই URLটি ফেরত দেওয়া হয়: edgemicro configure । বিস্তারিত জানার জন্য এজ মাইক্রোগেটওয়ে সেট আপ এবং কনফিগার করা দেখুন।
- quotaUri : আপনি যদি আপনার প্রতিষ্ঠানে স্থাপন করা
edgemicro-auth
প্রক্সির মাধ্যমে কোটা পরিচালনা করতে চান তবে এই কনফিগার বৈশিষ্ট্যটি সেট করুন। এই প্রপার্টি সেট করা না থাকলে, কোটা এন্ডপয়েন্ট অভ্যন্তরীণ এজ মাইক্রোগেটওয়ে এন্ডপয়েন্টে ডিফল্ট হয়।edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
edgemicro বৈশিষ্ট্য
এই সেটিংস এজ মাইক্রোগেটওয়ে প্রক্রিয়া কনফিগার করে।
- port : (ডিফল্ট: 8000) যে পোর্ট নম্বরে এজ মাইক্রোগেটওয়ে প্রক্রিয়া শোনে।
- max_connections : (ডিফল্ট: -1) এজ মাইক্রোগেটওয়ে প্রাপ্ত সর্বোচ্চ সংখ্যক যুগপত ইনকামিং সংযোগ নির্দিষ্ট করে। এই সংখ্যা অতিক্রম করা হলে, নিম্নলিখিত স্থিতি ফেরত দেওয়া হয়:
res.statusCode = 429; // Too many requests
- max_connections_hard : (ডিফল্ট: -1) সংযোগ বন্ধ করার আগে Edge Microgateway প্রাপ্ত সর্বোচ্চ সংখ্যক একযোগে অনুরোধ পেতে পারে। এই সেটিং পরিষেবা আক্রমণ অস্বীকার করার উদ্দেশ্যে করা হয়েছে. সাধারণত, এটিকে max_connections এর চেয়ে বড় সংখ্যায় সেট করুন।
- লগিং :
- স্তর : (ডিফল্ট: ত্রুটি)
- info - (প্রস্তাবিত) এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সের মাধ্যমে প্রবাহিত সমস্ত অনুরোধ এবং প্রতিক্রিয়া লগ করে।
- সতর্কতা - শুধুমাত্র সতর্ক বার্তা লগ করুন।
- ত্রুটি - লগ ত্রুটি বার্তা শুধুমাত্র.
- ডিবাগ - তথ্য, সতর্কতা এবং ত্রুটি বার্তা সহ ডিবাগ বার্তাগুলি লগ করে।
- ট্রেস - তথ্য, সতর্কীকরণ এবং ত্রুটি বার্তা সহ ত্রুটিগুলির জন্য লগগুলি তথ্য ট্রেস করে।
- none - একটি লগ ফাইল তৈরি করবেন না।
- dir : (ডিফল্ট: /var/tmp) ডিরেক্টরি যেখানে লগ ফাইল সংরক্ষণ করা হয়।
- stats_log_interval : (ডিফল্ট: 60) ব্যবধান, সেকেন্ডে, যখন পরিসংখ্যান রেকর্ড এপিআই লগ ফাইলে লেখা হয়।
- rotate_interval : (ডিফল্ট: 24) ব্যবধান, ঘন্টার মধ্যে, যখন লগ ফাইলগুলি ঘোরানো হয়।
- স্তর : (ডিফল্ট: ত্রুটি)
- প্লাগইন : প্লাগইন এজ মাইক্রোগেটওয়েতে কার্যকারিতা যোগ করে। প্লাগইন উন্নয়ন সম্পর্কে বিস্তারিত জানার জন্য, কাস্টম প্লাগইন বিকাশ দেখুন।
- dir : ./gateway ডিরেক্টরি থেকে ./plugins ডিরেক্টরিতে একটি আপেক্ষিক পথ, বা একটি পরম পথ।
- ক্রম : আপনার এজ মাইক্রোগেটওয়ে উদাহরণে যোগ করার জন্য প্লাগইন মডিউলগুলির একটি তালিকা। মডিউলগুলি এখানে উল্লিখিত ক্রম অনুসারে কার্যকর হবে।
- ডিবাগ: এজ মাইক্রোগেটওয়ে প্রক্রিয়ায় দূরবর্তী ডিবাগিং যোগ করে।
- পোর্ট : শোনার জন্য পোর্ট নম্বর। উদাহরণস্বরূপ, এই পোর্টে শুনতে আপনার IDE ডিবাগার সেট করুন।
- args : ডিবাগ প্রক্রিয়ার আর্গুমেন্ট। যেমন:
args --nolazy
- config_change_poll_interval: (ডিফল্ট: 600 সেকেন্ড) Edge Microgateway পর্যায়ক্রমে একটি নতুন কনফিগারেশন লোড করে এবং কিছু পরিবর্তন হলে পুনরায় লোড চালায়। পোলিং এজ-এ করা যেকোনো পরিবর্তন (পণ্যে পরিবর্তন, মাইক্রোগেটওয়ে-সচেতন প্রক্সি, ইত্যাদি) এবং সেইসাথে স্থানীয় কনফিগারেশন ফাইলে করা পরিবর্তনগুলি তুলে নেয়।
- disable_config_poll_interval: (ডিফল্ট: মিথ্যা) স্বয়ংক্রিয় পরিবর্তন পোলিং বন্ধ করতে সত্য সেট করুন।
- request_timeout : লক্ষ্য অনুরোধের জন্য একটি টাইমআউট সেট করে। সময়সীমা সেকেন্ডে সেট করা হয়। যদি একটি টাইমআউট ঘটে, এজ মাইক্রোগেটওয়ে একটি 504 স্ট্যাটাস কোড সহ প্রতিক্রিয়া জানায়। (v2.4.x যোগ করা হয়েছে)
- keep_alive_timeout : এই বৈশিষ্ট্যটি আপনাকে এজ মাইক্রোগেটওয়ে টাইমআউট (মিলিসেকেন্ডে) সেট করতে সক্ষম করে। (ডিফল্ট: 5 সেকেন্ড) (সংযোজিত v3.0.6)
- headers_timeout : এই বৈশিষ্ট্যটি HTTP পার্সার সম্পূর্ণ HTTP শিরোনাম পাওয়ার জন্য অপেক্ষা করবে এমন সময়ের পরিমাণ (মিলিসেকেন্ডে) সীমিত করে।
যেমন:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
অভ্যন্তরীণভাবে, প্যারামিটার অনুরোধে Node.js
Server.headersTimeout
বৈশিষ্ট্য সেট করে। (ডিফল্ট:edgemicro.keep_alive_timeout
এর সাথে সেট করা সময়ের চেয়ে 5 সেকেন্ড বেশি। এই ডিফল্ট সেটিং লোড ব্যালেন্সার বা প্রক্সিকে ভুলভাবে সংযোগ বাদ দেওয়া থেকে বাধা দেয়।) (সংযোজিত v3.1.1) - noRuleMatchAction: (স্ট্রিং)
accesscontrol
প্লাগইনে নির্দিষ্ট ম্যাচের নিয়মটি সমাধান না হলে (অ্যাক্সেসের অনুমতি দেওয়া বা অস্বীকার) নেওয়ার পদক্ষেপ (অমিল)। বৈধ মান:ALLOW
বাDENY
ডিফল্ট:ALLOW
(যোগ করা হয়েছে: v3.1.7) - enableAnalytics: (ডিফল্ট: সত্য) বিশ্লেষণ প্লাগইন লোড হওয়া থেকে আটকাতে বৈশিষ্ট্যটিকে মিথ্যাতে সেট করুন। এই ক্ষেত্রে, Apigee Edge বিশ্লেষণে কোন কল করা হবে না। যদি সত্যে সেট করা হয়, বা যখন এই বৈশিষ্ট্যটি প্রদান করা না হয়, বিশ্লেষণ প্লাগইন স্বাভাবিক হিসাবে কাজ করবে। বিস্তারিত জানার জন্য edgemicro বৈশিষ্ট্য দেখুন. (v3.1.8 যোগ করা হয়েছে)।
উদাহরণ:
edgemicro enableAnalytics=false|true
- on_target_response_abort : ক্লায়েন্ট (এজ মাইক্রোগেটওয়ে) এবং টার্গেট সার্ভারের মধ্যে সংযোগ অকালে বন্ধ হলে এজ মাইক্রোগেটওয়ে কীভাবে আচরণ করবে এই বৈশিষ্ট্যটি আপনাকে নিয়ন্ত্রণ করতে দেয়।
মান বর্ণনা ডিফল্ট যদি on_target_response_abort
অনির্দিষ্ট হয়, তাহলে ডিফল্ট আচরণ হল কোনো ত্রুটি না দেখিয়ে প্রতিক্রিয়াটি ছেঁটে ফেলা। লগ ফাইলগুলিতে, একটি সতর্কতা বার্তা টার্গেটtargetResponse aborted
এবং একটি 502 প্রতিক্রিয়া কোড দেখানো হয়েছে।appendErrorToClientResponseBody
কাস্টম ত্রুটি TargetResponseAborted
ক্লায়েন্টকে ফেরত দেওয়া হয়। লগ ফাইলগুলিতে, একটি সতর্কতা বার্তা টার্গেটtargetResponse aborted
এবং একটি 502 প্রতিক্রিয়া কোড দেখানো হয়েছে। উপরন্তু, ত্রুটিTargetResponseAborted
বার্তার সাথে লগ করা হয়েছেTarget response ended prematurely.
abortClientRequest
এজ মাইক্রোগেটওয়ে অনুরোধটি বাতিল করে এবং লগ ফাইলগুলিতে একটি সতর্কতা লেখা হয়: 502 অনুরোধ স্ট্যাটাস কোড সহ TargetResponseAborted
।
উদাহরণ:
edgemicro: on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest
শিরোনাম বৈশিষ্ট্য
এই সেটিংসগুলি কনফিগার করে যে কীভাবে নির্দিষ্ট HTTP শিরোনামগুলি ব্যবহার করা হয়।
- x-forwarded-for : (ডিফল্ট: true) টার্গেটে পাস করার জন্য x-ফরোয়ার্ড-এর হেডার প্রতিরোধ করতে মিথ্যা সেট করুন। মনে রাখবেন যে যদি একটি x-ফরোয়ার্ড-এর জন্য হেডার অনুরোধে থাকে, তাহলে এর মান এজ অ্যানালিটিক্সে ক্লায়েন্ট-আইপি মানতে সেট করা হবে।
- x-forwarded-host : (ডিফল্ট: সত্য) x-ফরোয়ার্ডেড-হোস্ট শিরোনামকে লক্ষ্যে পাস করা প্রতিরোধ করতে মিথ্যাতে সেট করুন।
- x-request-id : (ডিফল্ট: true) x-request-id হেডার টার্গেটে পাস করা প্রতিরোধ করতে মিথ্যা সেট করুন।
- x-response-time : (ডিফল্ট: সত্য) টার্গেটে পাস করা x-প্রতিক্রিয়া-সময় শিরোনাম প্রতিরোধ করতে মিথ্যা সেট করুন।
- মাধ্যমে : (ডিফল্ট: সত্য) হেডারের মাধ্যমে লক্ষ্যে পাস করা প্রতিরোধ করতে মিথ্যা সেট করুন।
শপথ বৈশিষ্ট্য
এই সেটিংস কনফিগার করে কিভাবে ক্লায়েন্ট প্রমাণীকরণ এজ মাইক্রোগেটওয়ে দ্বারা প্রয়োগ করা হয়।
- allowNoAuthorization : (ডিফল্ট: মিথ্যা) সত্যে সেট করা হলে, API কলগুলিকে এজ মাইক্রোগেটওয়ের মধ্য দিয়ে যাওয়ার অনুমতি দেওয়া হয় কোনো অনুমোদন শিরোনাম ছাড়াই। একটি অনুমোদন শিরোনাম (ডিফল্ট) প্রয়োজনের জন্য এটি মিথ্যাতে সেট করুন।
- allowInvalidAuthorization : (ডিফল্ট: মিথ্যা) সত্যে সেট করা থাকলে, অনুমোদন শিরোনামে পাস করা টোকেনটি অবৈধ বা মেয়াদ শেষ হলে API কলগুলি পাস করার অনুমতি দেওয়া হয়। বৈধ টোকেন (ডিফল্ট) প্রয়োজনের জন্য এটি মিথ্যাতে সেট করুন।
- অনুমোদন-শিরোনাম : (ডিফল্ট: অনুমোদন: বহনকারী) হেডারটি এজ মাইক্রোগেটওয়েতে অ্যাক্সেস টোকেন পাঠাতে ব্যবহৃত হয়। আপনি এমন ক্ষেত্রে ডিফল্ট পরিবর্তন করতে চাইতে পারেন যেখানে লক্ষ্যকে অন্য কোনো উদ্দেশ্যে অনুমোদন শিরোনাম ব্যবহার করতে হবে।
- api-key-header : (ডিফল্ট: x-api-key) এজ মাইক্রোগেটওয়েতে একটি API কী পাস করতে ব্যবহৃত হেডার বা ক্যোয়ারী প্যারামিটারের নাম। এপিআই কী ব্যবহার করাও দেখুন।
- keep-authorization-header : (ডিফল্ট: মিথ্যা) সত্যে সেট করা হলে, অনুরোধে প্রেরিত অনুমোদনের শিরোনাম টার্গেটে চলে যায় (এটি সংরক্ষিত থাকে)।
- allowOAuthOnly -- যদি সত্যে সেট করা হয়, প্রতিটি API অবশ্যই একটি বিয়ারার অ্যাক্সেস টোকেন সহ একটি অনুমোদন শিরোনাম বহন করবে৷ আপনাকে শুধুমাত্র OAuth নিরাপত্তা মডেলের অনুমতি দেওয়ার অনুমতি দেয় (পশ্চাদগামী সামঞ্জস্য বজায় রাখার সময়)। (2.4.x যোগ করা হয়েছে)
- অনুমতি দেয়APIKeyOnly -- যদি সত্যে সেট করা হয়, প্রতিটি API-কে অবশ্যই একটি API কী সহ একটি x-api-কী শিরোনাম (বা একটি কাস্টম অবস্থান) বহন করতে হবে৷ আপনাকে শুধুমাত্র API কী নিরাপত্তা মডেলের অনুমতি দিতে দেয় (পশ্চাদগামী সামঞ্জস্য বজায় রাখার সময়)৷ (2.4.x যোগ করা হয়েছে)
- gracePeriod -- এই প্যারামিটারটি আপনার সিস্টেম ঘড়ি এবং JWT অনুমোদন টোকেনে উল্লেখিত সময়ে আগে নয় (nbf) বা ইস্যুড এ (iat) সময়ের মধ্যে সামান্য অসঙ্গতির কারণে ত্রুটিগুলি প্রতিরোধ করতে সাহায্য করে। এই ধরনের অসঙ্গতির জন্য অনুমতি দিতে সেকেন্ডের সংখ্যায় এই প্যারামিটার সেট করুন। (2.5.7 যোগ করা হয়েছে)
প্লাগইন-নির্দিষ্ট বৈশিষ্ট্য
প্রতিটি প্লাগইনের জন্য কনফিগারযোগ্য বৈশিষ্ট্যের বিস্তারিত জানার জন্য প্লাগইন ব্যবহার করা দেখুন।
ফিল্টারিং প্রক্সি
আপনি কোন মাইক্রোগেটওয়ে-সচেতন প্রক্সিগুলিকে একটি এজ মাইক্রোগেটওয়ে দৃষ্টান্ত প্রক্রিয়া করবে তা ফিল্টার করতে পারেন। যখন এজ মাইক্রোগেটওয়ে শুরু হয়, এটি যে সংস্থার সাথে যুক্ত তার সমস্ত মাইক্রোগেটওয়ে-সচেতন প্রক্সি ডাউনলোড করে। মাইক্রোগেটওয়ে কোন প্রক্সি প্রক্রিয়া করবে তা সীমাবদ্ধ করতে নিম্নলিখিত কনফিগারেশন ব্যবহার করুন। উদাহরণস্বরূপ, এই কনফিগারেশনটি মাইক্রোগেটওয়ে তিনটি প্রক্সিতে প্রসেস করবে তা সীমাবদ্ধ করে: edgemicro_proxy-1
, edgemicro_proxy-2
, এবং edgemicro_proxy-3
:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
নাম দ্বারা পণ্য ফিল্টারিং
এজ মাইক্রোগেটওয়ে ডাউনলোড এবং প্রসেস করে এমন API পণ্যের সংখ্যা সীমিত করতে নিম্নলিখিত কনফিগারেশন ব্যবহার করুন। ডাউনলোড করা পণ্যগুলিকে ফিল্টার করতে, এজ মাইক্রোগেটওয়ে *.config.yaml
ফাইলে তালিকাভুক্ত /products
API-এ productnamefilter
ক্যোয়ারী প্যারামিটার যোগ করুন। যেমন:
edge_config: bootstrap: >- https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test jwt_public_key: 'https://myorg-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://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
মনে রাখবেন যে ক্যোয়ারী প্যারামিটারের মান অবশ্যই রেগুলার এক্সপ্রেশন ফরম্যাটে নির্দিষ্ট করতে হবে এবং URL এনকোডেড হতে হবে। উদাহরণস্বরূপ, regex ^[Ee]dgemicro.*$
নাম ধরে যেমন: "edgemicro-test-1", "edgemicro_demo" এবং "Edgemicro_New_Demo"। URL এনকোড করা মান, ক্যোয়ারী প্যারামিটারে ব্যবহারের জন্য উপযুক্ত, হল: %5E%5BEe%5Ddgemicro.%2A%24
।
নিম্নলিখিত ডিবাগ আউটপুট দেখায় যে শুধুমাত্র ফিল্টার করা পণ্যগুলি ডাউনলোড করা হয়েছে:
... 2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK ... .... .... { "apiProduct":[ { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590549037549, "createdBy":"k***@g********m", "displayName":"test upper case in name", "environments":[ "prod", "test" ], "lastModifiedAt":1590549037549, "lastModifiedBy":"k***@g********m", "name":"Edgemicro_New_Demo", "proxies":[ "catchall" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590548328998, "createdBy":"k***@g********m", "displayName":"edgemicro test 1", "environments":[ "prod", "test" ], "lastModifiedAt":1590548328998, "lastModifiedBy":"k***@g********m", "name":"edgemicro-test-1", "proxies":[ "Lets-Encrypt-Validation-DoNotDelete" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1558182193472, "createdBy":"m*********@g********m", "displayName":"Edge microgateway demo product", "environments":[ "prod", "test" ], "lastModifiedAt":1569077897465, "lastModifiedBy":"m*********@g********m", "name":"edgemicro_demo", "proxies":[ "edgemicro-auth", "edgemicro_hello" ], "quota":"600", "quotaInterval":"1", "quotaTimeUnit":"minute", "scopes":[ ] } ] }
কাস্টম বৈশিষ্ট্য দ্বারা পণ্য ফিল্টারিং
কাস্টম বৈশিষ্ট্যের উপর ভিত্তি করে পণ্য ফিল্টার করতে:
- এজ UI-তে, আপনি যে প্রতিষ্ঠান/পরিবেশে এজ মাইক্রোগেটওয়ে কনফিগার করেছেন সেখানে edgemicro_auth প্রক্সি নির্বাচন করুন।
- ডেভেলপ ট্যাপে, এডিটরে JavaCallout নীতি খুলুন।
- কী
products.filter.attributes
এর সাথে একটি কাস্টম অ্যাট্রিবিউট যোগ করুন কমা দ্বারা আলাদা করা অ্যাট্রিবিউট নামের তালিকার সাথে। শুধুমাত্র যে পণ্যগুলিতে কাস্টম অ্যাট্রিবিউটের নাম রয়েছে তা এজ মাইক্রোগেটওয়েতে ফেরত দেওয়া হবে। - কাস্টম অ্যাট্রিবিউট
products.filter.env.enable
কেfalse
এ সেট করে বর্তমান পরিবেশের জন্য পণ্যটি সক্ষম হয়েছে কিনা তা দেখতে আপনি ঐচ্ছিকভাবে চেকটি নিষ্ক্রিয় করতে পারেন। (ডিফল্ট সত্য।) - (শুধুমাত্র ব্যক্তিগত ক্লাউড) আপনি যদি ব্যক্তিগত ক্লাউডের জন্য প্রান্তে থাকেন তবে নন-সিপিএস পরিবেশের জন্য পণ্যগুলি টানতে
org.noncps
সম্পত্তিটিকেtrue
সেট করুন।
যেমন:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout"> <DisplayName>JavaCallout</DisplayName> <FaultRules/> <Properties> <Property name="products.filter.attributes">attrib.one, attrib.two</Property> <Property name="products.filter.env.enable">false</Property> <Property name="org.noncps">true</Property> </Properties> <ClassName>io.apigee.microgateway.javacallout.Callout</ClassName> <ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL> </JavaCallout>
অ্যানালিটিক্স পুশ ফ্রিকোয়েন্সি কনফিগার করা হচ্ছে
এজ মাইক্রোগেটওয়ে Apigee-তে বিশ্লেষণ ডেটা পাঠায় সেই ফ্রিকোয়েন্সি নিয়ন্ত্রণ করতে এই কনফিগারেশন প্যারামিটারগুলি ব্যবহার করুন:
- bufferSize (ঐচ্ছিক): প্রাচীনতম রেকর্ড বাদ দেওয়া শুরু করার আগে বাফারটি ধরে রাখতে পারে এমন সর্বাধিক সংখ্যক বিশ্লেষণী রেকর্ড। ডিফল্ট: 10000
- ব্যাচসাইজ (ঐচ্ছিক): Apigee-এ পাঠানো অ্যানালিটিক্স রেকর্ডের ব্যাচের সর্বোচ্চ আকার। ডিফল্ট: 500
- flushInterval (ঐচ্ছিক): Apigee-এ পাঠানো বিশ্লেষণ রেকর্ডের একটি ব্যাচের প্রতিটি ফ্লাশের মধ্যে মিলিসেকেন্ডের সংখ্যা। ডিফল্ট: 5000
যেমন:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
বিশ্লেষণ তথ্য মাস্কিং
নিম্নলিখিত কনফিগারেশন এজ অ্যানালিটিক্সে দেখানো থেকে অনুরোধের পথের তথ্যকে বাধা দেয়। অনুরোধ URI এবং/অথবা অনুরোধ পাথ মাস্ক করতে মাইক্রোগেটওয়ে কনফিগারেশনে নিম্নলিখিত যোগ করুন। মনে রাখবেন যে ইউআরআই অনুরোধের হোস্টনাম এবং পাথ অংশ নিয়ে গঠিত।
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
এজ অ্যানালিটিক্সে API কলগুলি আলাদা করা
আপনি একটি নির্দিষ্ট API পাথ আলাদা করতে বিশ্লেষণ প্লাগইন কনফিগার করতে পারেন যাতে এটি এজ অ্যানালিটিক্স ড্যাশবোর্ডে একটি পৃথক প্রক্সি হিসাবে প্রদর্শিত হয়। উদাহরণস্বরূপ, আপনি প্রকৃত API প্রক্সি কলগুলির সাথে বিভ্রান্ত হওয়া এড়াতে ড্যাশবোর্ডে একটি স্বাস্থ্য পরীক্ষা API আলাদা করতে পারেন। অ্যানালিটিক্স ড্যাশবোর্ডে, বিচ্ছিন্ন প্রক্সি এই নামকরণ প্যাটার্ন অনুসরণ করে:
edgemicro_proxyname-health
নিম্নলিখিত চিত্রটি বিশ্লেষণ ড্যাশবোর্ডে দুটি পৃথক প্রক্সি দেখায়: edgemicro_hello-health
এবং edgemicro_mock-health
:
আলাদা প্রক্সি হিসাবে Analytics ড্যাশবোর্ডে আপেক্ষিক এবং পরম পাথগুলিকে আলাদা করতে এই প্যারামিটারগুলি ব্যবহার করুন:
- relatedPath (ঐচ্ছিক): Analytics ড্যাশবোর্ডে আলাদা করার জন্য একটি আপেক্ষিক পথ নির্দিষ্ট করে। উদাহরণ স্বরূপ, আপনি যদি
/healthcheck
নির্দিষ্ট করেন, path/healthcheck
ধারণ করে এমন সমস্ত API কলগুলি ড্যাশবোর্ডেedgemicro_ proxyname -health
হিসাবে প্রদর্শিত হবে। মনে রাখবেন যে এই পতাকাটি প্রক্সি বেসপাথ উপেক্ষা করে। বেসপাথ সহ একটি সম্পূর্ণ পথের উপর ভিত্তি করে আলাদা করতে,proxyPath
পতাকা ব্যবহার করুন। - proxyPath (ঐচ্ছিক): বিশ্লেষণ ড্যাশবোর্ডে আলাদা করার জন্য প্রক্সি বেসপাথ সহ একটি সম্পূর্ণ API প্রক্সি পাথ নির্দিষ্ট করে। উদাহরণস্বরূপ, আপনি যদি
/mocktarget/healthcheck
নির্দিষ্ট করেন, যেখানে/mocktarget
হল প্রক্সি বেসপাথ,/mocktarget/healthcheck
এর সাথে সমস্ত API কলগুলি ড্যাশবোর্ডেedgemicro_ proxyname -health
হিসাবে উপস্থিত হবে।
উদাহরণ স্বরূপ, নিম্নলিখিত কনফিগারেশনে /healthcheck
ধারণ করে এমন যেকোনো API পাথ বিশ্লেষণ প্লাগইন দ্বারা আলাদা করা হবে। এর মানে, /foo/healthcheck
এবং /foo/bar/healthcheck
বিশ্লেষণ ড্যাশবোর্ডে edgemicro_ proxyname -health
নামে একটি পৃথক প্রক্সি হিসাবে আলাদা করা হবে।
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
নিম্নলিখিত কনফিগারেশনে প্রক্সি পাথ /mocktarget/healthcheck
সহ যেকোনো API বিশ্লেষণ ড্যাশবোর্ডে edgemicro_ proxyname -health
নামে একটি পৃথক প্রক্সি হিসাবে আলাদা করা হবে।
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
একটি কোম্পানির ফায়ারওয়ালের পিছনে এজ মাইক্রোগেটওয়ে সেট আপ করা হচ্ছে
Apigee Edge এর সাথে যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করুন
সংস্করণ 3.1.2 এ যোগ করা হয়েছে।
এজ মাইক্রোগেটওয়ে এবং এপিজি এজের মধ্যে যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করতে, নিম্নলিখিতগুলি করুন:
- এনভায়রনমেন্ট ভেরিয়েবল
HTTP_PROXY
,HTTPS_PROXY
, এবংNO_PROXY
সেট করুন। এই ভেরিয়েবলগুলি প্রতিটি HTTP প্রক্সির জন্য হোস্টগুলিকে নিয়ন্ত্রণ করে যা আপনি Apigee Edge-এর সাথে যোগাযোগের জন্য ব্যবহার করতে চান বা কোন হোস্টগুলি Apigee Edge-এর সাথে যোগাযোগ পরিচালনা করবে না৷ যেমন:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
মনে রাখবেন যে
NO_PROXY
ডোমেনগুলির একটি কমা সীমাবদ্ধ তালিকা হতে পারে যা এজ মাইক্রোগেটওয়ের প্রক্সি করা উচিত নয়৷এই ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য, https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables দেখুন
- এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন।
লক্ষ্য যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করুন
সংস্করণ 3.1.2 এ যোগ করা হয়েছে।
এজ মাইক্রোগেটওয়ে এবং ব্যাকএন্ড লক্ষ্যগুলির মধ্যে যোগাযোগের জন্য একটি এইচটিটিপি প্রক্সি ব্যবহার করতে, নিম্নলিখিতগুলি করুন:
- মাইক্রোগেটওয়ে কনফিগারেশন ফাইলটিতে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | false
কোথায়:
- টানেল : (al চ্ছিক) যখন সত্য হয়, এজ মাইক্রোগেটওয়ে একটি একক টিসিপি সংযোগের মাধ্যমে এইচটিটিপি সংযোগের জন্য এইচটিটিপি সংযোগ পদ্ধতিটি ব্যবহার করে। (প্রক্সিটি কনফিগার করার জন্য নীচে উল্লিখিত পরিবেশের ভেরিয়েবলগুলি টিএলএস সক্ষম করা হয় তবে এটি একই সত্য)। ডিফল্ট:
false
- ইউআরএল : এইচটিটিপি প্রক্সি ইউআরএল।
- বাইপাস : (al চ্ছিক) এক বা একাধিক কমা-বিচ্ছিন্ন টার্গেট হোস্ট ইউআরএল নির্দিষ্ট করে যা এইচটিটিপি প্রক্সি বাইপাস করা উচিত। যদি এই সম্পত্তিটি সেট না করা থাকে, তবে কোন টার্গেট ইউআরএলগুলি বাইপাস করার জন্য নির্দিষ্ট করতে NO_PROXY পরিবেশের পরিবর্তনশীল ব্যবহার করুন।
- সক্ষম : যদি সত্য এবং
proxy.url
সেট করা থাকে তবে এইচটিটিপি প্রক্সিটির জন্যproxy.url
মানটি ব্যবহার করুন। যদি সত্য এবংproxy.url
সেট না করা থাকে তবে এপিআইজি এজের সাথে যোগাযোগের জন্য এইচটিটিপি প্রক্সি ব্যবহারে বর্ণিত হিসাবে এইচটিটিপি প্রক্সি এনভায়রনমেন্ট ভেরিয়েবলগুলিHTTP_PROXY
এবংHTTPS_PROXY
নির্দিষ্ট প্রক্সিগুলি ব্যবহার করুন।
যেমন:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true
- টানেল : (al চ্ছিক) যখন সত্য হয়, এজ মাইক্রোগেটওয়ে একটি একক টিসিপি সংযোগের মাধ্যমে এইচটিটিপি সংযোগের জন্য এইচটিটিপি সংযোগ পদ্ধতিটি ব্যবহার করে। (প্রক্সিটি কনফিগার করার জন্য নীচে উল্লিখিত পরিবেশের ভেরিয়েবলগুলি টিএলএস সক্ষম করা হয় তবে এটি একই সত্য)। ডিফল্ট:
- এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন।
মাইক্রোগেটওয়ে-সচেতন প্রক্সিতে ওয়াইল্ডকার্ড ব্যবহার করা
আপনি এক বা একাধিক "*" ওয়াইল্ডকার্ড ব্যবহার করতে পারেন একটি এডেমিক্রো_* (মাইক্রোগেটওয়ে-সচেতন) প্রক্সির বেস পাথটিতে। উদাহরণস্বরূপ, /টিম/*/সদস্যদের একটি বেস পাথ ক্লায়েন্টদের https: // [হোস্ট]/দল/নীল/সদস্য এবং https: // [হোস্ট]/টিম/সবুজ/সদস্যদের কল করার অনুমতি দেয় আপনাকে নতুন তৈরি করার প্রয়োজন নেই নতুন দলগুলিকে সমর্থন করার জন্য এপিআই প্রক্সি। নোট করুন যে /**/
সমর্থিত নয়।
গুরুত্বপূর্ণ: এপিগি একটি বেস পাথের প্রথম উপাদান হিসাবে একটি ওয়াইল্ডকার্ড "*" ব্যবহার করে সমর্থন করে না। উদাহরণস্বরূপ, এটি সমর্থিত নয়: /*/
অনুসন্ধান।
জেডব্লিউটি কীগুলি ঘোরানো
আপনি প্রাথমিকভাবে কোনও জেডব্লিউটি তৈরি করার পরে কোনও সময়ে, আপনাকে প্রান্ত এনক্রিপ্ট করা কেভিএম -এ সঞ্চিত সরকারী/ব্যক্তিগত কী জুটি পরিবর্তন করতে হবে। একটি নতুন কী জুটি তৈরির এই প্রক্রিয়াটিকে কী রোটেশন বলা হয়।
এজ মাইক্রোগেটওয়ে কীভাবে জেডব্লিউটি ব্যবহার করে
জেএসএন ওয়েব টোকেন (জেডাব্লুটি) আরএফসি 7519 এ বর্ণিত একটি টোকেন স্ট্যান্ডার্ড। জেডব্লিউটি দাবিগুলির একটি সেট স্বাক্ষর করার একটি উপায় সরবরাহ করে, যা জেডাব্লুটি প্রাপক দ্বারা নির্ভরযোগ্যভাবে যাচাই করা যেতে পারে।
আপনি সিএলআই ব্যবহার করে একটি জেডব্লিউটি তৈরি করতে পারেন এবং এটি এপিআই কী এর পরিবর্তে এপিআই কলগুলির অনুমোদনের শিরোনামে ব্যবহার করতে পারেন। যেমন:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
সিএলআই দিয়ে জেডব্লিউটি তৈরি করার তথ্যের জন্য, একটি টোকেন তৈরি করুন ।
কী ঘূর্ণন কী?
আপনি প্রাথমিকভাবে কোনও জেডব্লিউটি তৈরি করার পরে কোনও সময়ে, আপনাকে প্রান্ত এনক্রিপ্ট করা কেভিএম -এ সঞ্চিত সরকারী/ব্যক্তিগত কী জুটি পরিবর্তন করতে হবে। একটি নতুন কী জুটি তৈরির এই প্রক্রিয়াটিকে কী রোটেশন বলা হয়। আপনি যখন কীগুলি ঘোরান, তখন একটি নতুন বেসরকারী/পাবলিক কী জুটি আপনার অ্যাপিগি এজ সংস্থা/পরিবেশে "মাইক্রোগেটওয়ে" কেভিএম -তে উত্পন্ন এবং সংরক্ষণ করা হয়। এছাড়াও, পুরানো পাবলিক কীটি এর মূল কী আইডি মান সহ ধরে রাখা হয়।
একটি জেডাব্লুটি উত্পন্ন করতে, এজ এনক্রিপ্ট করা কেভিএম -এ সঞ্চিত তথ্য ব্যবহার করে। microgateway
নামে একটি কেভিএম তৈরি করা হয়েছিল এবং কীগুলি দিয়ে তৈরি করা হয়েছিল যখন আপনি প্রাথমিকভাবে (কনফিগার করা) এজ মাইক্রোগেটওয়ে সেট আপ করেন। কেভিএমের কীগুলি একটি জেডব্লিউটি সাইন এবং এনক্রিপ্ট করতে ব্যবহৃত হয়।
কেভিএম কীগুলির মধ্যে রয়েছে:
প্রাইভেট_কি - সর্বশেষ (সর্বাধিক নির্মিত) আরএসএ প্রাইভেট কী জেডব্লিউটিএস স্বাক্ষর করতে ব্যবহৃত।
পাবলিক_কি - প্রাইভেট_কি দিয়ে স্বাক্ষরিত জেডব্লিউটিগুলি যাচাই করতে ব্যবহৃত সর্বশেষ (সর্বাধিক নির্মিত) শংসাপত্র।
প্রাইভেট_কি_কিড - সর্বশেষতম (সম্প্রতি তৈরি) প্রাইভেট কী আইডি। এই কী আইডিটি প্রাইভেট_কি মানের সাথে সম্পর্কিত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়।
পাবলিক_কি 1_কিড - সর্বশেষতম (সম্প্রতি তৈরি) পাবলিক কী আইডি। এই কীটি পাবলিক_কি 1 মানের সাথে সম্পর্কিত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়। এই মানটি প্রাইভেট কী কিডের মতোই।
পাবলিক_কি 1 - সর্বশেষতম (সর্বাধিক সম্প্রতি তৈরি) পাবলিক কী।
আপনি যখন কী রোটেশন সম্পাদন করেন, বিদ্যমান কী মানগুলি মানচিত্রে প্রতিস্থাপন করা হয় এবং পুরানো পাবলিক কীগুলি ধরে রাখতে নতুন কীগুলি যুক্ত করা হয়। যেমন:
পাবলিক_কি 2_কিড - পুরানো পাবলিক কী আইডি। এই কীটি পাবলিক_কি 2 মানের সাথে সম্পর্কিত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়।
পাবলিক_কি 2 - পুরানো পাবলিক কী।
যাচাইয়ের জন্য উপস্থাপিত জেডব্লিউটিএস নতুন পাবলিক কী ব্যবহার করে যাচাই করা হবে। যদি যাচাইকরণ ব্যর্থ হয়, তবে পুরানো পাবলিক কীটি ব্যবহার করা হবে, যতক্ষণ না জেডব্লিউটি মেয়াদ শেষ হয় (টোকেন_এক্সপিরি* ব্যবধান, ডিফল্ট 30 মিনিট) পরে। এইভাবে, আপনি তাত্ক্ষণিকভাবে এপিআই ট্র্যাফিক ব্যাহত না করে কীগুলি "ঘোরানো" করতে পারেন।
কীভাবে কী ঘূর্ণন করবেন
এই বিভাগটি কীভাবে একটি মূল ঘূর্ণন সম্পাদন করবেন তা ব্যাখ্যা করে।
- কেভিএম আপগ্রেড করতে,
edgemicro upgradekvm
কমান্ডটি ব্যবহার করুন। এই কমান্ডটি চালানোর বিষয়ে বিশদগুলির জন্য, কেভিএম আপগ্রেড করা দেখুন। আপনার কেবল একবারে এই পদক্ষেপটি করা দরকার। - এডেমিক্রো-ওথ প্রক্সি আপগ্রেড করতে,
edgemicro upgradeauth
কমান্ডটি ব্যবহার করুন। এই কমান্ডটি চালানোর বিষয়ে বিশদগুলির জন্য, এডেমিক্রো-এথ প্রক্সিটিকে উগ্রেড করা দেখুন। আপনার কেবল একবারে এই পদক্ষেপটি করা দরকার। - আপনার
~/.edgemicro/org-env-config.yaml
ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন, যেখানে আপনাকে অবশ্যই একই সংস্থা এবং পরিবেশ নির্দিষ্ট করতে হবে যা আপনি ব্যবহারের জন্য মাইক্রোগেটওয়ে কনফিগার করেছেন:jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
কীগুলি ঘোরানোর জন্য কী রোটেশন কমান্ডটি চালান। এই কমান্ডের বিশদগুলির জন্য, ঘোরানো কীগুলি দেখুন।
edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET
যেমন:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
কী ঘূর্ণনের পরে, এজ মাইক্রোগেটওয়েতে একাধিক কীগুলি ফেরত দেয়। নিম্নলিখিত উদাহরণে নোট করুন, প্রতিটি কীতে একটি অনন্য "কিড" (কী আইডি) মান রয়েছে। মাইক্রোগেটওয়ে এরপরে অনুমোদনের টোকেনগুলি যাচাই করতে এই কীগুলি ব্যবহার করে। যদি টোকেন বৈধতা ব্যর্থ হয় তবে মাইক্রোগেটওয়ে কী সেটে কোনও পুরানো কী আছে কিনা তা দেখতে এবং সেই কীটি চেষ্টা করে। ফেরত কীগুলির ফর্ম্যাটটি হ'ল জেএসএন ওয়েব কী (জেডব্লিউকে)। আপনি আরএফসি 7517 এ এই ফর্ম্যাটটি সম্পর্কে পড়তে পারেন।
{ "keys": [ { "kty": "RSA", "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ", "e": "AQAB", "kid": "2" }, { "kty": "RSA", "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw", "e": "AQAB", "kid": "1" } ] }
একটি "আগে নয়" বিলম্ব কনফিগার করা
৩.১.৫ সংস্করণগুলির জন্য এবং এর আগে, rotatekey
কমান্ড দ্বারা উত্পাদিত নতুন প্রাইভেট কীটি তাত্ক্ষণিকভাবে কার্যকর হয়েছিল এবং উত্পন্ন নতুন টোকেনগুলি নতুন ব্যক্তিগত কী দিয়ে স্বাক্ষরিত হয়েছিল। যাইহোক, নতুন পাবলিক কীটি কেবলমাত্র মাইক্রোগেটওয়ে কনফিগারেশনটি রিফ্রেশ করা হলে প্রতি 10 মিনিটে (ডিফল্টরূপে) মাইক্রোগেটওয়ে দৃষ্টান্তগুলি প্রান্তে উপলব্ধ করা হয়েছিল। টোকেন সাইনিং এবং মাইক্রোগেটওয়ে উদাহরণ রিফ্রেশের মধ্যে এই ব্যবধানের কারণে, সর্বশেষ কী দিয়ে স্বাক্ষরিত টোকেনগুলি প্রত্যাখ্যান করা হবে যতক্ষণ না সমস্ত দৃষ্টান্তগুলি সর্বজনীন সর্বশেষ কী না পেয়ে।
একাধিক মাইক্রোগেটওয়ে দৃষ্টান্তগুলি বিদ্যমান এমন ক্ষেত্রে, পাবলিক কী ল্যাগের ফলে কখনও কখনও স্থিতি 403 এর সাথে অন্তর্বর্তী রানটাইম ত্রুটি দেখা দেয়, কারণ টোকেন বৈধতা একটি উদাহরণে চলে যায়, তবে সমস্ত দৃষ্টান্ত রিফ্রেশ না হওয়া পর্যন্ত অন্য কোনও উদাহরণে ব্যর্থ হয়।
সংস্করণ ৩.১..6 থেকে শুরু করে, rotatekey
কমান্ডে একটি নতুন পতাকা আপনাকে নতুন ব্যক্তিগত কী কার্যকর হওয়ার জন্য একটি বিলম্ব নির্দিষ্ট করতে দেয়, সমস্ত মাইক্রোগেটওয়ে দৃষ্টান্তগুলিকে সতেজ হতে এবং নতুন পাবলিক কী গ্রহণ করার জন্য সময় দেয়। নতুন পতাকাটি --nbf
, যার অর্থ "আগে নয়"। এই পতাকাটি একটি পূর্ণসংখ্যার মান নেয়, বিলম্ব করতে কয়েক মিনিটের সংখ্যা।
নিম্নলিখিত উদাহরণে, বিলম্ব 15 মিনিটে সেট করা আছে:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \ --nbf 15
নোট করুন যে একটি ভাল অনুশীলন হ'ল config_change_poll_internal
কনফিগারেশন সেটিংয়ের চেয়ে বেশি বিলম্ব সেট করা, যা ডিফল্টরূপে 10 মিনিট। এডজেমিক্রো বৈশিষ্ট্যগুলিও দেখুন।
ফিল্টারিং ডাউনলোড প্রক্সি
ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে আপনার এজ সংস্থার সমস্ত প্রক্সি ডাউনলোড করে যা নামকরণের উপসর্গ "এডজেমিক্রো_" দিয়ে শুরু হয়। আপনি এই ডিফল্টটি এমন প্রক্সিগুলি ডাউনলোড করতে পরিবর্তন করতে পারেন যার নামগুলি একটি প্যাটার্নের সাথে মেলে।
- আপনার এজ মাইক্রো কনফিগার ফাইলটি খুলুন:
~/.edgemicro/org-env-config.yaml
- EGE_CONFIG এর অধীনে প্রক্সিপ্যাটার্ন উপাদান যুক্ত করুন। উদাহরণস্বরূপ, নিম্নলিখিত প্যাটার্নটি এডজেমিক্রো_ফু, এডেমিক্রো_ফাস্ট এবং এডজেমিক্রো_ফিরস্টের মতো প্রক্সিগুলি ডাউনলোড করবে।
edge_config: … proxyPattern: edgemicro_f*
এপিআই প্রক্সি ছাড়াই পণ্য নির্দিষ্ট করা
অ্যাপিগি প্রান্তে, আপনি এমন একটি এপিআই পণ্য তৈরি করতে পারেন যাতে কোনও এপিআই প্রক্সি থাকে না। এই পণ্য কনফিগারেশনটি সেই পণ্যটির সাথে যুক্ত একটি এপিআই কীকে আপনার সংস্থায় মোতায়েন করা কোনও প্রক্সি দিয়ে কাজ করার অনুমতি দেয়। সংস্করণ 2.5.4 হিসাবে, এজ মাইক্রোগেটওয়ে এই পণ্য কনফিগারেশনটিকে সমর্থন করে।
ডিবাগিং এবং সমস্যা সমাধান
একটি ডিবাগারের সাথে সংযোগ স্থাপন
আপনি নোড-ইনস্পেক্টর হিসাবে একটি ডিবাগার দিয়ে এজ মাইক্রোগেটওয়ে চালাতে পারেন। এটি কাস্টম প্লাগইনগুলির সমস্যা সমাধানের জন্য এবং ডিবাগ করার জন্য দরকারী।
- ডিবাগ মোডে এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। এটি করতে,
start
কমান্ডের শুরুতেDEBUG=*
যুক্ত করুন:DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
কোনও ফাইলে ডিবাগ আউটপুট সরাসরি করতে, আপনি এই কমান্ডটি ব্যবহার করতে পারেন:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- আপনার ডিবাগারটি শুরু করুন এবং ডিবাগিং প্রক্রিয়াটির জন্য পোর্ট নম্বরটি শুনতে এটি সেট করুন।
- আপনি এখন এজ মাইক্রোগেটওয়ে কোড, ব্রেকপয়েন্টগুলি সেট করতে, এক্সপ্রেশনগুলি দেখতে এবং আরও অনেক কিছু দিয়ে পদক্ষেপ নিতে পারেন।
আপনি ডিবাগ মোড সম্পর্কিত স্ট্যান্ডার্ড নোড.জেএস ফ্ল্যাগগুলি নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, --nolazy
অ্যাসিঙ্ক্রোনাস কোড ডিবাগিংয়ে সহায়তা করে।
লগ ফাইলগুলি পরীক্ষা করা হচ্ছে
আপনার যদি সমস্যা হয় তবে কার্যকরকরণের বিশদ এবং ত্রুটির তথ্যের জন্য লগ ফাইলগুলি পরীক্ষা করতে ভুলবেন না। বিশদের জন্য, লগ ফাইলগুলি পরিচালনা করা দেখুন।
এপিআই কী সুরক্ষা ব্যবহার করে
এপিআই কীগুলি মাইক্রোগেটওয়ে প্রান্তে অনুরোধ করার জন্য ক্লায়েন্টদের প্রমাণীকরণের জন্য একটি সাধারণ প্রক্রিয়া সরবরাহ করে। আপনি একটি এপিজি এজ প্রোডাক্ট থেকে গ্রাহক কী (যাকে ক্লায়েন্ট আইডিও বলা হয়) মানটি অনুলিপি করে একটি এপিআই কী পেতে পারেন যা এজ মাইক্রোগেটওয়ে প্রমাণীকরণ প্রক্সি অন্তর্ভুক্ত করে।
কী ক্যাশিং
এপিআই কীগুলি বহনকারী টোকেনের জন্য বিনিময় করা হয়, যা ক্যাশে করা হয়। আপনি Cache-Control: no-cache
।
একটি এপিআই কী ব্যবহার করে
আপনি একটি এপিআই অনুরোধে ক্যোয়ারী প্যারামিটার হিসাবে বা শিরোনামে এপিআই কীটি পাস করতে পারেন। ডিফল্টরূপে, শিরোনাম এবং ক্যোয়ারী প্যারাম নাম উভয়ই x-api-key
।
ক্যোয়ারী প্যারামিটার উদাহরণ:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
হেডার উদাহরণ:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
এপিআই কী নামটি কনফিগার করছে
ডিফল্টরূপে, x-api-key
হ'ল এপিআই কী শিরোনাম এবং ক্যোয়ারী প্যারামিটারের জন্য ব্যবহৃত নাম। কনফিগারেশন পরিবর্তন করার ক্ষেত্রে আপনি কনফিগারেশন ফাইলে এই ডিফল্টটি পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, নামটি অ্যাপিকে পরিবর্তন করতে:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
এই উদাহরণে, ক্যোয়ারী প্যারামিটার এবং শিরোনামের নাম উভয়ই apiKey
পরিবর্তন করা হয়েছে। x-api-key
নামটি আর কোনও ক্ষেত্রে কাজ করবে না। কনফিগারেশন পরিবর্তন করাও দেখুন।
যেমন:
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
প্রক্সি অনুরোধগুলি সহ এপিআই কীগুলি ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, সিকিউর এজ মাইক্রোগেটওয়ে দেখুন।
আপস্ট্রিম প্রতিক্রিয়া কোড সক্ষম করুন
ডিফল্টরূপে, oauth
প্লাগইন যদি প্রতিক্রিয়াটি 200 স্থিতি না হয় তবে কেবল 4xx ত্রুটি স্থিতি কোডগুলি ফেরত দেয়। আপনি এই আচরণটি পরিবর্তন করতে পারেন যাতে এটি সর্বদা ত্রুটির উপর নির্ভর করে সঠিক 4xx বা 5xx কোডটি দেয়।
এই বৈশিষ্ট্যটি সক্ষম করতে, oauth.useUpstreamResponse: true
সম্পত্তি যুক্ত করুন। যেমন:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
OAuth2 টোকেন সুরক্ষা ব্যবহার করে
এই বিভাগটি কীভাবে OAuth2 অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন পাবেন তা ব্যাখ্যা করে। অ্যাক্সেস টোকেনগুলি মাইক্রোগেটওয়ের মাধ্যমে সুরক্ষিত এপিআই কলগুলি তৈরি করতে ব্যবহৃত হয়। রিফ্রেশ টোকেনগুলি নতুন অ্যাক্সেস টোকেন পেতে ব্যবহৃত হয়।
কীভাবে অ্যাক্সেস টোকেন পাবেন
এই বিভাগটি অ্যাক্সেস টোকেন পেতে কীভাবে edgemicro-auth
প্রক্সি ব্যবহার করবেন তা ব্যাখ্যা করে।
আপনি edgemicro token
সিএলআই কমান্ড ব্যবহার করে একটি অ্যাক্সেস টোকেনও পেতে পারেন। সিএলআই সম্পর্কিত বিশদগুলির জন্য, টোকেনগুলি পরিচালনা করা দেখুন।
এপিআই 1: বডি প্যারামিটার হিসাবে শংসাপত্রগুলি প্রেরণ করুন
আপনার org এবং পরিবেশের নামগুলি ইউআরএল -এ প্রতিস্থাপন করুন এবং ক্লায়েন্ট_আইডি এবং ক্লায়েন্ট_সেক্রেট বডি প্যারামিটারগুলির জন্য অ্যাপিগি প্রান্তে একটি বিকাশকারী অ্যাপ্লিকেশন থেকে প্রাপ্ত গ্রাহক আইডি এবং গ্রাহক গোপন মানগুলি প্রতিস্থাপন করুন:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \ -d '{"grant_type": "client_credentials", "client_id": "your_client_id", \ "client_secret": "your_client_secret"}' -H "Content-Type: application/json"
এপিআই 2: একটি বেসিক এথ শিরোনামে শংসাপত্রগুলি প্রেরণ করুন
বেসিক প্রমাণীকরণ শিরোনাম হিসাবে ক্লায়েন্টের শংসাপত্রগুলি এবং ফর্ম প্যারামিটার হিসাবে grant_type
প্রেরণ করুন। এই কমান্ড ফর্মটি আরএফসি 6749 এও আলোচনা করা হয়েছে: ওএউথ 2.0 অনুমোদনের কাঠামো ।
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
নমুনা আউটপুট
এপিআই একটি জেএসএন প্রতিক্রিয়া দেয়। নোট করুন যেtoken
এবং access_token
বৈশিষ্ট্যগুলির মধ্যে কোনও পার্থক্য নেই। আপনি যেকোনো একটি ব্যবহার করতে পারেন। নোট করুন যে expires_in
হ'ল সেকেন্ডে নির্দিষ্ট একটি পূর্ণসংখ্যার মান। { "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": 1799 }
কিভাবে একটি রিফ্রেশ টোকেন পাবেন
একটি রিফ্রেশ টোকেন পেতে, edgemicro-auth
প্রক্সির /token
শেষ পয়েন্টে একটি এপিআই কল করুন। আপনাকে অবশ্যই password
অনুদান প্রকারের সাথে এই এপিআই কল করতে হবে। নিম্নলিখিত পদক্ষেপগুলি প্রক্রিয়াটি দিয়ে চলে।
-
/token
এপিআই দিয়ে একটি অ্যাক্সেস এবং রিফ্রেশ টোকেন পান। নোট করুন যে অনুদানের ধরণটিpassword
:curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'
এপিআই একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন দেয়। প্রতিক্রিয়া এটির মতো দেখাচ্ছে। নোট করুন যে
expires_in
পূর্ণসংখ্যার মানগুলি এবং সেকেন্ডে নির্দিষ্ট করা হয়।{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": 108, "refresh_token": "your-refresh-token", "refresh_token_expires_in": 431, "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" }
- আপনি এখন একই এপিআইয়ের
/refresh
এন্ডপয়েন্টে কল করে একটি নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করতে পারেন। যেমন:curl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'
এপিআই একটি নতুন অ্যাক্সেস টোকেন দেয়। প্রতিক্রিয়া এটির মতো দেখাচ্ছে:
{ "token": "your-new-access-token" }
চিরকাল পর্যবেক্ষণ
একটি কনফিগার ফাইল শেষ পয়েন্ট নির্দিষ্ট করা
আপনি যদি একাধিক প্রান্তের মাইক্রোগেটওয়ে উদাহরণগুলি চালান তবে আপনি কোনও একক অবস্থান থেকে তাদের কনফিগারেশনগুলি পরিচালনা করতে চাইতে পারেন। আপনি এইচটিটিপি এন্ডপয়েন্ট নির্দিষ্ট করে এটি করতে পারেন যেখানে এজ মাইক্রো তার কনফিগারেশন ফাইলটি ডাউনলোড করতে পারে। আপনি যখন -ইউ পতাকাটি ব্যবহার করে এজ মাইক্রো শুরু করেন আপনি এই শেষ পয়েন্টটি নির্দিষ্ট করতে পারেন।
যেমন:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
যেখানে এমজি কনফিগ এন্ডপয়েন্টটি আপনার কনফিগারেশন ফাইলের সামগ্রীগুলি ফেরত দেয়। এটি সেই ফাইল যা ডিফল্টরূপে ~/.edgemicro
এ অবস্থিত এবং এর নামকরণ কনভেনশন রয়েছে: org-env-config.yaml
।
টিসিপি সংযোগ ডেটা বাফারিং অক্ষম করা
আপনি এজ মাইক্রোগেটওয়ে দ্বারা ব্যবহৃত টিসিপি সংযোগগুলির জন্য ডেটা বাফারিং অক্ষম করতে nodelay
কনফিগারেশন বৈশিষ্ট্যটি ব্যবহার করতে পারেন।
ডিফল্টরূপে টিসিপি সংযোগগুলি এটি পাঠানোর আগে বাফার ডেটা বাফার করতে নাগলে অ্যালগরিদম ব্যবহার করে। nodelay
true
সেট করা, এই আচরণটি অক্ষম করে (ডেটা অবিলম্বে socket.write()
বলা হয় ডেটা অবিলম্বে ডেটা বন্ধ করে দেবে)। আরও তথ্যের জন্য নোড.জেএস ডকুমেন্টেশনও দেখুন।
nodelay
সক্ষম করতে, নিম্নলিখিত হিসাবে এজ মাইক্রো কনফিগার ফাইলটি সম্পাদনা করুন:
edgemicro: nodelay: true port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
স্ট্যান্ডেলোন মোডে এজ মাইক্রোগেটওয়ে চলমান
আপনি যে কোনও অ্যাপিগি প্রান্ত নির্ভরতা থেকে সম্পূর্ণ সংযোগ বিচ্ছিন্ন প্রান্তটি চালাতে পারেন। স্ট্যান্ডেলোন মোড নামে পরিচিত এই দৃশ্যটি আপনাকে কোনও ইন্টারনেট সংযোগ ছাড়াই মাইক্রোগেটওয়ে চালাতে এবং পরীক্ষা করতে দেয়।
স্ট্যান্ডেলোন মোডে, নিম্নলিখিত বৈশিষ্ট্যগুলি কাজ করে না, কারণ এপিগি এজের সাথে তাদের সংযোগ প্রয়োজন:
- ওআউথ এবং এপিআই কী
- কোটা
- বিশ্লেষণ
অন্যদিকে, কাস্টম প্লাগইনস এবং স্পাইক গ্রেপ্তার সাধারণত কাজ করে, কারণ এপিগি এজের সাথে তাদের সংযোগের প্রয়োজন হয় না। এছাড়াও, extauth
নামে একটি নতুন প্লাগইন আপনাকে স্ট্যান্ডেলোন মোডে থাকাকালীন জেডব্লিউটি সহ মাইক্রোগেটওয়েতে এপিআই কলগুলি অনুমোদিত করতে দেয়।
গেটওয়ে কনফিগার এবং শুরু
স্ট্যান্ডেলোন মোডে এজ মাইক্রোগেটওয়ে চালাতে:
- নিম্নরূপ হিসাবে নামকরণ করা একটি কনফিগারেশন ফাইল তৈরি করুন:
$HOME/.edgemicro/ $ORG
-
$ENV -config.yamlযেমন:
vi $HOME/.edgemicro/foo-bar-config.yaml
- ফাইলে নিম্নলিখিত কোড পেস্ট করুন:
edgemicro: port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - extauth - spikearrest headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true extauth: publickey_url: https://www.googleapis.com/oauth2/v1/certs spikearrest: timeUnit: second allow: 10 buffersize: 0
- "1" মান সহ নিম্নলিখিত পরিবেশের পরিবর্তনশীল রফতানি করুন:
export EDGEMICRO_LOCAL=1
- নিম্নলিখিত
start
কমান্ডটি সম্পাদন করুন, যেখানে আপনি স্থানীয় প্রক্সিটি ইনস্ট্যান্ট করার জন্য মানগুলি সরবরাহ করেন:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
কোথায়:
- $ORG হ'ল "org" নাম যা আপনি কনফিগারেশন ফাইলের নামটিতে ব্যবহার করেছেন।
- $ENV হ'ল "এনভ" নাম যা আপনি কনফিগারেশন ফাইলের নামটিতে ব্যবহার করেছেন।
- $LOCAL_PROXY_NAME স্থানীয় প্রক্সিটির নাম যা তৈরি করা হবে। আপনি চাইলে যেকোনো নাম ব্যবহার করতে পারেন।
- $LOCAL_PROXY_VERSION প্রক্সিটির সংস্করণ নম্বর।
- $TARGET_URL হ'ল প্রক্সিটির লক্ষ্যমাত্রার জন্য URL। ( লক্ষ্যটি হ'ল সেই পরিষেবা যা প্রক্সি কল করে))
- $BASE_PATH হ'ল প্রক্সিটির বেস পাথ। এই মানটি অবশ্যই একটি ফরোয়ার্ড স্ল্যাশ দিয়ে শুরু করতে হবে। একটি মূল বেস পাথের জন্য, কেবল একটি ফরোয়ার্ড স্ল্যাশ নির্দিষ্ট করুন; উদাহরণস্বরূপ, "/"।
যেমন:
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- কনফিগারেশন পরীক্ষা করুন।
curl http://localhost:8000/echo { "error" : "missing_authorization" }
যেহেতু
extauth
প্লাগইনটিfoo-bar-config.yaml
ফাইলে রয়েছে, আপনি একটি "অনুপস্থিত_আউথোরাইজেশন" ত্রুটি পাবেন। এই প্লাগইনটি একটি জেডব্লিউটি বৈধ করে যা অবশ্যই এপিআই কলের অনুমোদনের শিরোনামে উপস্থিত থাকতে হবে। পরবর্তী বিভাগে, আপনি একটি জেডব্লিউটি পাবেন যা এপিআই কলগুলিকে ত্রুটি ছাড়াই যেতে দেয়।
উদাহরণ: একটি অনুমোদনের টোকেন প্রাপ্তি
নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে এপিজি এজ ( edgemicro-auth/jwkPublicKeys
) এ এজ মাইক্রোগেটওয়ে জেডব্লিউটি এন্ডপয়েন্ট থেকে জেডব্লিউটি পাওয়া যায়। আপনি যখন এজ মাইক্রোগেটওয়ের একটি স্ট্যান্ডার্ড সেটআপ এবং কনফিগারেশন সম্পাদন করেন তখন এই শেষ পয়েন্টটি মোতায়েন করা হয়। অ্যাপিগি এন্ডপয়েন্ট থেকে জেডব্লিউটি পেতে, আপনাকে প্রথমে স্ট্যান্ডার্ড এজ মাইক্রোগেটওয়ে সেটআপ করতে হবে এবং ইন্টারনেটে সংযুক্ত থাকতে হবে। অ্যাপিগি এন্ডপয়েন্টটি এখানে উদাহরণস্বরূপ কেবল উদ্দেশ্যে ব্যবহৃত হয় এবং প্রয়োজন হয় না। আপনি যদি চান তবে আপনি অন্য জেডব্লিউটি টোকেন এন্ডপয়েন্ট ব্যবহার করতে পারেন। আপনি যদি তা করেন তবে আপনাকে সেই শেষ পয়েন্টের জন্য সরবরাহিত এপিআই ব্যবহার করে জেডব্লিউটি গ্রহণ করতে হবে।
নিম্নলিখিত পদক্ষেপগুলি edgemicro-auth/jwkPublicKeys
শেষ পয়েন্টটি ব্যবহার করে কীভাবে একটি টোকেন পাবেন তা ব্যাখ্যা করে:।
- এপিজি এজে আপনার সংস্থা/পরিবেশে
edgemicro-auth
প্রক্সিটি স্থাপনের জন্য আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ের একটি স্ট্যান্ডার্ড সেটআপ এবং কনফিগারেশন সম্পাদন করতে হবে। আপনি যদি আগে এই পদক্ষেপটি করেন তবে আপনার এটির পুনরাবৃত্তি করার দরকার নেই। - আপনি যদি এপিজি ক্লাউডে এজ মাইক্রোগেটওয়ে স্থাপন করেন তবে আপনাকে অবশ্যই ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে যাতে আপনি এই শেষ পয়েন্ট থেকে একটি জেডাব্লুটি পেতে পারেন।
- এজ মাইক্রোগেটওয়ে বন্ধ করুন:
edgemicro stop
- আপনি পূর্বে তৈরি কনফিগারেশন ফাইলটিতে (
$HOME/.edgemicro
/ org-config.yaml
env , আপনার অ্যাপিগি এজ সংস্থা/পরিবেশেedgemicro-auth/jwkPublicKeys
এন্ডপয়েন্টের কাছেextauth:publickey_url
বৈশিষ্ট্যটি নির্দেশ করুন। যেমন:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
- আপনি কনফিগার ফাইলের নামটিতে ব্যবহৃত org/ENV নামগুলি ব্যবহার করে আপনি আগে যেমন করেছিলেন তেমন এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। যেমন:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- অনুমোদনের শেষ পয়েন্ট থেকে একটি জেডব্লিউটি টোকেন পান। যেহেতু আপনি
edgemicro-auth/jwkPublicKeys
শেষ পয়েন্টটি ব্যবহার করছেন, আপনি এই সিএলআই কমান্ডটি ব্যবহার করতে পারেন:
আপনি edgemicro token
কমান্ড বা একটি এপিআই ব্যবহার করে এজ মাইক্রোগেটওয়ের জন্য একটি জেডব্লিউটি তৈরি করতে পারেন। যেমন:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
কোথায়:
- your_org হ'ল আপনার অ্যাপিগি সংস্থার নাম যার জন্য আপনি পূর্বে এজ মাইক্রোগেটওয়ে কনফিগার করেছিলেন।
- your_env সংস্থার একটি পরিবেশ।
-
i
বিকল্পটি এমন একটি বিকাশকারী অ্যাপ্লিকেশন থেকে গ্রাহক কী নির্দিষ্ট করে যা এমন একটি পণ্য রয়েছে যাedgemicro-auth
প্রক্সি অন্তর্ভুক্ত করে। -
s
বিকল্পটি এমন একটি বিকাশকারী অ্যাপ্লিকেশন থেকে ভোক্তা গোপনীয়তা নির্দিষ্ট করে যার মধ্যে এমন একটি পণ্য রয়েছে যাedgemicro-auth
প্রক্সি অন্তর্ভুক্ত করে।
এই কমান্ডটি অ্যাপিগি এজকে এমন একটি জেডব্লিউটি তৈরি করতে বলে যা পরে এপিআই কলগুলি যাচাই করতে ব্যবহার করা যেতে পারে।
এছাড়াও একটি টোকেন উত্পন্ন দেখুন।স্ট্যান্ডেলোন কনফিগারেশন পরীক্ষা করুন
কনফিগারেশনটি পরীক্ষা করতে, অনুমোদনের শিরোনামে যুক্ত টোকেন দিয়ে এপিআইকে কল করুন:
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
উদাহরণ:
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
উদাহরণ আউটপুট:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
স্থানীয় প্রক্সি মোড ব্যবহার করে
স্থানীয় প্রক্সি মোডে, এজ মাইক্রোগেটওয়ের জন্য অ্যাপিগি এজে মোতায়েন করার জন্য কোনও মাইক্রোগেটওয়ে-সচেতন প্রক্সি প্রয়োজন হয় না। পরিবর্তে, আপনি মাইক্রোগেটওয়ে শুরু করার সময় একটি স্থানীয় প্রক্সি নাম, বেসপাথ এবং টার্গেট ইউআরএল সরবরাহ করে একটি "স্থানীয় প্রক্সি" কনফিগার করেন। মাইক্রোগেটওয়েতে এপিআই কলগুলি তখন স্থানীয় প্রক্সির টার্গেট ইউআরএলে প্রেরণ করা হয়। অন্যান্য সমস্ত ক্ষেত্রে, স্থানীয় প্রক্সি মোড তার স্বাভাবিক মোডে এজ মাইক্রোগেটওয়ে চলমান হিসাবে ঠিক একই কাজ করে। প্রমাণীকরণ একই কাজ করে, যেমন স্পাইক গ্রেপ্তার এবং কোটা প্রয়োগ, কাস্টম প্লাগইন এবং আরও অনেক কিছু করে।
কেস এবং উদাহরণ ব্যবহার করুন
স্থানীয় প্রক্সি মোডটি কার্যকর যখন আপনাকে কেবল একটি প্রান্ত মাইক্রোগেটওয়ে উদাহরণের সাথে একটি একক প্রক্সি সংযুক্ত করতে হবে। উদাহরণস্বরূপ, আপনি সিডিকার প্রক্সি হিসাবে কুবারনেটেসে এজ মাইক্রোগেটওয়েতে ইনজেকশন করতে পারেন, যেখানে একটি মাইক্রোগেটওয়ে এবং একটি পরিষেবা প্রতিটি একক পোডে চালিত হয় এবং যেখানে মাইক্রোগেটওয়ে ট্র্যাফিককে তার সহযোগী পরিষেবাতে এবং থেকে পরিচালনা করে। নিম্নলিখিত চিত্রটি এই আর্কিটেকচারটিকে চিত্রিত করে যেখানে এজ মাইক্রোগেটওয়ে একটি কুবারনেটস ক্লাস্টারে সিডিকার প্রক্সি হিসাবে কাজ করে। প্রতিটি মাইক্রোগেটওয়ে উদাহরণ কেবল তার সহযোগী পরিষেবায় একক প্রান্তের সাথে কথা বলে:
আর্কিটেকচারের এই স্টাইলের একটি সুবিধা হ'ল এজ মাইক্রোগেটওয়ে একটি কুবারনেটস ক্লাস্টার হিসাবে একটি ধারক পরিবেশে মোতায়েন করা পৃথক পরিষেবার জন্য এপিআই পরিচালনা সরবরাহ করে।
স্থানীয় প্রক্সি মোড কনফিগার করা
স্থানীয় প্রক্সি মোডে চালানোর জন্য এজ মাইক্রোগেটওয়ে কনফিগার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনার স্থানীয় কনফিগারেশন পরিবেশ সেট আপ করতে
edgemicro init
চালান, ঠিক যেমন আপনি একটি সাধারণ প্রান্তের মাইক্রোগেটওয়ে সেটআপে চান। এজ মাইক্রোগেটওয়ে কনফিগার করুন । -
edgemicro configure
চালান, যেমন আপনি একটি সাধারণ এজ মাইক্রোগেটওয়ে সেটআপ পদ্ধতিতে চান। যেমন:edgemicro configure -o your_org -e your_env -u your_apigee_username
এই কমান্ডটি এজমিক্রো-এথ নীতিটি প্রান্তে স্থাপন করে এবং একটি কী এবং গোপনীয়তা দেয় যা আপনাকে মাইক্রোগেটওয়ে শুরু করতে হবে। আপনার যদি সাহায্যের প্রয়োজন হয় তবে এজ মাইক্রোগেটওয়ে কনফিগার করুন।
- অ্যাপিগি এজে, একটি এপিআই পণ্য তৈরি করুন এবং নিম্নলিখিত বাধ্যতামূলক কনফিগারেশন প্রয়োজনীয়তা সহ (আপনি নিজের ইচ্ছামত অন্যান্য সমস্ত কনফিগারেশন পরিচালনা করতে পারেন):
- আপনাকে অবশ্যই পণ্যটিতে এডজেমিক্রো-এথ প্রক্সি যুক্ত করতে হবে। আপনি যখন
edgemicro configure
চালান তখন এই প্রক্সিটি স্বয়ংক্রিয়ভাবে মোতায়েন করা হয়েছিল। - আপনাকে অবশ্যই একটি সংস্থান পথ সরবরাহ করতে হবে। অ্যাপিগি পণ্যটিতে এই পথটি যুক্ত করার পরামর্শ দেয়:
/**
। আরও জানতে, রিসোর্স পাথের আচরণটি কনফিগার করা দেখুন। এজ ডকুমেন্টেশনে এপিআই পণ্যগুলিও তৈরি করুন দেখুন।
- আপনাকে অবশ্যই পণ্যটিতে এডজেমিক্রো-এথ প্রক্সি যুক্ত করতে হবে। আপনি যখন
অ্যাপিগি প্রান্তে, একটি বিকাশকারী তৈরি করুন, বা আপনি যদি চান তবে একটি বিদ্যমান বিকাশকারী ব্যবহার করতে পারেন। সাহায্যের জন্য, এজ ম্যানেজমেন্ট ইউআই ব্যবহার করে বিকাশকারীদের যুক্ত করা দেখুন।
- অ্যাপিগি প্রান্তে, একটি বিকাশকারী অ্যাপ্লিকেশন তৈরি করুন। আপনি অবশ্যই অ্যাপটিতে তৈরি করা এপিআই পণ্য যুক্ত করতে হবে। সাহায্যের জন্য, এজ ম্যানেজমেন্ট ইউআই -তে একটি অ্যাপ্লিকেশন নিবন্ধকরণ দেখুন।
- যে মেশিনে এজ মাইক্রোগেটওয়ে ইনস্টল করা আছে সেখানে "1" মান সহ নিম্নলিখিত পরিবেশের পরিবর্তনশীলটি রফতানি করুন।
export EDGEMICRO_LOCAL_PROXY=1
- নিম্নলিখিত
start
কমান্ডটি কার্যকর করুন:edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_path
কোথায়:
- your_org আপনার অ্যাপিগি সংস্থা।
- your_environment আপনার সংস্থার একটি পরিবেশ।
- your_key হ'ল সেই কী যা আপনি
edgemicro configure
চালানোর সময় ফিরে এসেছিলেন। - your_secret হ'ল গোপনীয়তা যা আপনি
edgemicro configure
চালানোর সময় ফিরে এসেছিলেন। - local_proxy_name হ'ল স্থানীয় প্রক্সিটির নাম যা তৈরি করা হবে।
- local_proxy_version প্রক্সিটির সংস্করণ নম্বর।
- target_url হ'ল প্রক্সিটির লক্ষ্যমাত্রার জন্য URL (প্রক্সি যে পরিষেবাটি কল করবে)।
- base_path হ'ল প্রক্সির বেস পাথ। এই মানটি অবশ্যই একটি ফরোয়ার্ড স্ল্যাশ দিয়ে শুরু করতে হবে। একটি মূল বেস পাথের জন্য, কেবল একটি ফরোয়ার্ড স্ল্যাশ নির্দিষ্ট করুন; উদাহরণস্বরূপ, "/"।
যেমন:
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
কনফিগারেশন পরীক্ষা করা হচ্ছে
আপনি প্রক্সি এন্ডপয়েন্টে কল করে স্থানীয় প্রক্সি কনফিগারেশনটি পরীক্ষা করতে পারেন। উদাহরণস্বরূপ, আপনি যদি /echo
একটি বেসপাথ নির্দিষ্ট করে থাকেন তবে আপনি প্রক্সিটিকে নিম্নরূপে কল করতে পারেন:
curl http://localhost:8000/echo { "error" : "missing_authorization", "error_description" : "Missing Authorization header" }
এই প্রাথমিক এপিআই কলটি একটি ত্রুটি তৈরি করেছে কারণ আপনি কোনও বৈধ এপিআই কী সরবরাহ করেন নি। আপনি আগে তৈরি করা বিকাশকারী অ্যাপ্লিকেশনটিতে কীটি খুঁজে পেতে পারেন। প্রান্তটি ইউআইতে অ্যাপ্লিকেশনটি খুলুন, গ্রাহক কীটি অনুলিপি করুন এবং নিম্নলিখিত কীটি ব্যবহার করুন:
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
যেমন:
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
উদাহরণ আউটপুট:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
সিঙ্ক্রোনাইজার ব্যবহার করে
এই বিভাগটি কীভাবে সিঙ্ক্রোনাইজারটি ব্যবহার করবেন তা ব্যাখ্যা করে, একটি al চ্ছিক বৈশিষ্ট্য যা এপিজি এজ থেকে কনফিগারেশন ডেটা পুনরুদ্ধার করতে এবং এটি স্থানীয় রেডিস ডাটাবেসে লিখতে অনুমতি দিয়ে এজ মাইক্রোগটওয়ের স্থিতিস্থাপকতা উন্নত করে। একটি সিঙ্ক্রোনাইজার উদাহরণ চলমান সহ, বিভিন্ন নোডে চলমান অন্যান্য প্রান্তের মাইক্রোগেটওয়ে দৃষ্টান্তগুলি এই ডাটাবেস থেকে সরাসরি তাদের কনফিগারেশনটি পুনরুদ্ধার করতে পারে।
সিঙ্ক্রোনাইজার বৈশিষ্ট্যটি বর্তমানে রেডিস 5.0.x. এর সাথে কাজ করার জন্য সমর্থিত।
সিঙ্ক্রোনাইজার কী?
সিঙ্ক্রোনাইজার এজ মাইক্রোগেটওয়ের জন্য একটি স্তরের স্থিতিস্থাপকতা সরবরাহ করে। এটি নিশ্চিত করতে সহায়তা করে যে এজ মাইক্রোগেটওয়ের প্রতিটি উদাহরণ একই কনফিগারেশন ব্যবহার করে এবং ইন্টারনেট বিঘ্ন ঘটলে এজ মাইক্রোগেটওয়ে উদাহরণগুলি সঠিকভাবে শুরু হতে পারে এবং সঠিকভাবে চালাতে পারে।
ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলি অবশ্যই এপিআই প্রক্সি এবং এপিআই পণ্য কনফিগারেশনগুলির মতো তাদের কনফিগারেশন ডেটা পুনরুদ্ধার এবং রিফ্রেশ করতে এপিজি এজের সাথে যোগাযোগ করতে সক্ষম হতে হবে। যদি প্রান্তের সাথে ইন্টারনেট সংযোগ ব্যাহত হয় তবে মাইক্রোগেটওয়ে উদাহরণগুলি কাজ চালিয়ে যেতে পারে কারণ সর্বশেষতম কনফিগারেশন ডেটা ক্যাশে করা হয়। যাইহোক, নতুন মাইক্রোগেটওয়ে উদাহরণগুলি একটি পরিষ্কার সংযোগ ছাড়া শুরু করতে পারে না। তদ্ব্যতীত, ইন্টারনেট বিঘ্নের ফলে অন্য কোনও দৃষ্টান্তের সাথে সিঙ্কের বাইরে থাকা কনফিগারেশন তথ্যের সাথে চলমান এক বা একাধিক মাইক্রোগেটওয়ে দৃষ্টান্তের ফলস্বরূপ সম্ভব।
এজ মাইক্রোগেটওয়ে সিঙ্ক্রোনাইজার কনফিগারেশন ডেটা পুনরুদ্ধার করার জন্য এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলির জন্য একটি বিকল্প ব্যবস্থা সরবরাহ করে যা তাদের এপিআই প্রক্সি ট্র্যাফিকটি শুরু করতে এবং প্রক্রিয়া করতে হবে। কলগুলি থেকে অ্যাপিগি এজগুলিতে পুনরুদ্ধার করা কনফিগারেশন ডেটাগুলির মধ্যে রয়েছে: jwk_public_keys
কল, jwt_public_key
কল, বুটস্ট্র্যাপ কল এবং এপিআই পণ্য কল। প্রান্ত মাইক্রোগেটওয়ে এবং অ্যাপিগি প্রান্তের মধ্যে ইন্টারনেট সংযোগ ব্যাহত হলেও সিঙ্ক্রোনাইজারটি বিভিন্ন নোডে চলমান সমস্ত প্রান্তের মাইক্রোগেটওয়ে দৃষ্টান্তগুলির পক্ষে এটি সম্ভব করে তোলে।
সিঙ্ক্রোনাইজারটি এজ মাইক্রোগেটওয়ের একটি বিশেষভাবে কনফিগার করা উদাহরণ। এর একমাত্র উদ্দেশ্য হ'ল অ্যাপিগি এজ (সময়টি কনফিগারযোগ্য) পোল করা, কনফিগারেশন ডেটা পুনরুদ্ধার করা এবং এটি একটি স্থানীয় রেডিস ডাটাবেসে লিখুন। সিঙ্ক্রোনাইজার উদাহরণ নিজেই এপিআই প্রক্সি ট্র্যাফিক প্রক্রিয়া করতে পারে না। বিভিন্ন নোডে চলমান এজ মাইক্রোগেটওয়ের অন্যান্য উদাহরণগুলি অ্যাপিগি এজ থেকে না হয়ে রেডিস ডাটাবেস থেকে কনফিগারেশন ডেটা পুনরুদ্ধার করতে কনফিগার করা যেতে পারে। যেহেতু সমস্ত মাইক্রোগেটওয়ে দৃষ্টান্তগুলি স্থানীয় ডাটাবেস থেকে তাদের কনফিগারেশন ডেটা টানছে, তারা কোনও ইন্টারনেট বিঘ্ন ঘটলেও এপিআই অনুরোধগুলি শুরু করতে এবং প্রক্রিয়া করতে পারে।
একটি সিঙ্ক্রোনাইজার উদাহরণ কনফিগার করা
আপনি সিঙ্ক্রোনাইজার হিসাবে ব্যবহার করতে চান এমন এজ মাইক্রোগেটওয়ে ইনস্টলেশনটির জন্য org-env /config.yaml
ফাইলটিতে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
যেমন:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
অপশন | বর্ণনা |
---|---|
redisHost | হোস্ট যেখানে আপনার রেডিস উদাহরণটি চলছে। ডিফল্ট: 127.0.0.1 |
redisPort | রেডিস উদাহরণ পোর্ট। ডিফল্ট: 6379 |
redisDb | রেডিস ডিবি ব্যবহার করতে। ডিফল্ট: 0 |
redisPassword | আপনার ডাটাবেস পাসওয়ার্ড। |
অবশেষে, কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং প্রান্ত মাইক্রোগেটওয়ে উদাহরণটি শুরু করুন। এটি পোলিং এপিজি এজ এবং রেডিস ডাটাবেসে ডাউনলোড কনফিগারেশন ডেটা সংরক্ষণ করা শুরু করবে।
নিয়মিত এজ মাইক্রোগেটওয়ে উদাহরণগুলি কনফিগার করা
সিঙ্ক্রোনাইজারটি চলার সাথে সাথে, আপনি নিয়মিত মাইক্রোগেটওয়ে উদাহরণগুলি চালানোর জন্য অতিরিক্ত এজ মাইক্রোগেটওয়ে নোডগুলি কনফিগার করতে পারেন যা এপিআই প্রক্সি ট্র্যাফিক প্রক্রিয়া করে। তবে, আপনি এপিগি এজ থেকে পরিবর্তে রেডিস ডাটাবেস থেকে তাদের কনফিগারেশন ডেটা পেতে এই দৃষ্টান্তগুলি কনফিগার করেন।
প্রতিটি অতিরিক্ত এজ মাইক্রোগেটওয়ে নোডের org-env /config.yaml
ফাইলটিতে নিম্নলিখিত কনফিগারেশন যুক্ত করুন। নোট করুন যে synchronizerMode
সম্পত্তি 0
এ সেট করা আছে। এই সম্পত্তিটি এপিআই প্রক্সি ট্র্যাফিক প্রক্রিয়া করে এমন একটি সাধারণ এজ মাইক্রোগেটওয়ে উদাহরণ হিসাবে পরিচালনা করার জন্য উদাহরণটি সেট করে এবং উদাহরণটি রেডিস ডাটাবেস থেকে তার কনফিগারেশন ডেটা গ্রহণ করবে।
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
যেমন:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
কনফিগারেশন বৈশিষ্ট্য
সিঙ্ক্রোনাইজারের ব্যবহার সমর্থন করার জন্য নিম্নলিখিত কনফিগারেশন বৈশিষ্ট্যগুলি যুক্ত করা হয়েছে:
বৈশিষ্ট্য | মূল্যবোধ | বর্ণনা |
---|---|---|
edge_config.synchronizerMode | 0 বা 1 | যদি 0 (ডিফল্ট) এজ মাইক্রোগেটওয়ে তার স্ট্যান্ডার্ড মোডে কাজ করে। যদি 1 হয় তবে সিঙ্ক্রোনাইজার হিসাবে পরিচালনা করার জন্য এজ মাইক্রোগেটওয়ে উদাহরণটি শুরু করুন। এই মোডে, উদাহরণটি অ্যাপিগি এজ থেকে কনফিগারেশন ডেটা টানবে এবং এটি একটি স্থানীয় রেডিস ডাটাবেসে সঞ্চয় করবে। এই উদাহরণটি এপিআই প্রক্সি অনুরোধগুলি প্রক্রিয়া করতে সক্ষম নয়; এর একমাত্র উদ্দেশ্য হ'ল কনফিগারেশন ডেটার জন্য অ্যাপিগি এজকে পোল করা এবং এটি স্থানীয় ডাটাবেসে লিখতে। তারপরে আপনাকে অবশ্যই ডাটাবেস থেকে পড়তে অন্যান্য মাইক্রোগেটওয়ে দৃষ্টান্তগুলি কনফিগার করতে হবে। |
edge_config.redisBasedConfigCache | সত্য বা মিথ্যা | যদি সত্য হয় তবে এজ মাইক্রোগেটওয়ে উদাহরণটি অ্যাপিগি এজ থেকে পরিবর্তে রেডিস ডাটাবেস থেকে তার কনফিগারেশন ডেটা নিয়ে আসে। রেডিস ডাটাবেসটি অবশ্যই একইরকম হতে হবে যা সিঙ্ক্রোনাইজারটি লিখতে কনফিগার করা আছে। যদি রেডিস ডাটাবেসটি অনুপলব্ধ থাকে বা যদি ডাটাবেসটি খালি থাকে তবে মাইক্রোগেটওয়ে তার কনফিগারেশনের জন্য একটি বিদ্যমান cache-config.yaml ফাইলের সন্ধান করে।যদি মিথ্যা (ডিফল্ট) হয় তবে এজ মাইক্রোগেটওয়ে উদাহরণটি যথারীতি অ্যাপিগি এজ থেকে কনফিগারেশন ডেটা নিয়ে আসে। |
edgemicro.config_change_poll_interval | সময়ের ব্যবধান, সেকেন্ডে | অ্যাপিগি এজ থেকে ডেটা টানতে সিঙ্ক্রোনাইজারের জন্য পোলিং অন্তর নির্দিষ্ট করে। |
প্লাগইনগুলির জন্য ইউআরএলগুলি বাদ দিন কনফিগার করা
নির্দিষ্ট ইউআরএলগুলির জন্য প্লাগইনগুলির প্রক্রিয়াকরণ এড়াতে আপনি মাইক্রোগেটওয়ে কনফিগার করতে পারেন। আপনি এই "বাদ" ইউআরএলগুলি বিশ্বব্যাপী (সমস্ত প্লাগইনগুলির জন্য) বা নির্দিষ্ট প্লাগইনগুলির জন্য কনফিগার করতে পারেন।
যেমন:
... edgemicro: ... plugins: excludeUrls: '/hello,/proxy_one' # global exclude urls sequence: - oauth - json2xml - quota json2xml: excludeUrls: '/hello/xml' # plugin level exclude urls ...
এই উদাহরণে, প্লাগইনগুলি পাথ /hello
বা /proxy_one
সাথে আগত এপিআই প্রক্সি কলগুলি প্রক্রিয়া করবে না। এছাড়াও, json2xml
প্লাগইনটি তাদের পথে /hello/xml
সহ এপিআইয়ের জন্য এড়িয়ে যাবে।
পরিবেশের পরিবর্তনশীল মানগুলির সাথে কনফিগারেশন বৈশিষ্ট্যগুলি সেট করা
আপনি কনফিগারেশন ফাইলে ট্যাগ ব্যবহার করে পরিবেশের ভেরিয়েবলগুলি নির্দিষ্ট করতে পারেন। নির্দিষ্ট পরিবেশের পরিবর্তনশীল ট্যাগগুলি প্রকৃত পরিবেশের পরিবর্তনশীল মান দ্বারা প্রতিস্থাপন করা হয়। প্রতিস্থাপনগুলি কেবল মেমরিতে সংরক্ষণ করা হয় এবং মূল কনফিগারেশন বা ক্যাশে ফাইলগুলিতে সংরক্ষণ করা হয় না।
এই উদাহরণে, অ্যাট্রিবিউট key
TARGETS_SSL_CLIENT_KEY
পরিবেশের পরিবর্তনশীল এবং এর মান দ্বারা প্রতিস্থাপন করা হয়।
targets: - ssl: client: key: <E>TARGETS_SSL_CLIENT_KEY</E> cert: <E>TARGETS_SSL_CLIENT_CERT</E> passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>
এই উদাহরণে, <n>
ট্যাগটি একটি পূর্ণসংখ্যার মান নির্দেশ করতে ব্যবহৃত হয়। শুধুমাত্র ইতিবাচক পূর্ণসংখ্যা সমর্থিত।
edgemicro: port: <E><n>EMG_PORT</n></E>
এই উদাহরণে, <b>
ট্যাগটি একটি বুলিয়ান (যা সত্য বা মিথ্যা) মান নির্দেশ করতে ব্যবহৃত হয়।
quotas: useRedis: <E><b>EMG_USE_REDIS</b></E>