এজ মাইক্রোগেটওয়ের জন্য অপারেশন এবং কনফিগারেশন রেফারেন্স

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

এজ মাইক্রোগেটওয়ে v. 3.1.5 এবং পরবর্তী

এজ মাইক্রোগেটওয়ে কীভাবে পরিচালনা এবং কনফিগার করতে হয় এই বিষয়টি আলোচনা করে।

আপনার ইন্টারনেট সংযোগ থাকলে এজ মাইক্রোগেটওয়ে আপগ্রেড করা হচ্ছে

এই বিভাগটি ব্যাখ্যা করে কিভাবে এজ মাইক্রোগেটওয়ের একটি বিদ্যমান ইনস্টলেশন আপগ্রেড করতে হয়। আপনি যদি ইন্টারনেট সংযোগ ছাড়াই কাজ করেন, দেখুন আমি কি ইন্টারনেট সংযোগ ছাড়া এজ মাইক্রোগেটওয়ে ইনস্টল করতে পারি? .

Apigee আপনাকে আপনার উৎপাদন পরিবেশ আপগ্রেড করার আগে নতুন সংস্করণের সাথে আপনার বিদ্যমান কনফিগারেশন পরীক্ষা করার পরামর্শ দেয়।

  1. এজ মাইক্রোগেটওয়ের সর্বশেষ সংস্করণে আপগ্রেড করতে নিম্নলিখিত npm কমান্ডটি চালান:
    npm upgrade edgemicro -g

    এজ মাইক্রোগেটওয়ের একটি নির্দিষ্ট সংস্করণে আপগ্রেড করতে, আপনাকে আপগ্রেড কমান্ডে সংস্করণ নম্বরটি নির্দিষ্ট করতে হবে। আপনি সংস্করণ নম্বর উল্লেখ না করলে, সর্বশেষ সংস্করণ ইনস্টল করা হবে। উদাহরণস্বরূপ, সংস্করণ 3.1.0 এ আপগ্রেড করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

    npm upgrade edgemicro@3.1.0 -g
  2. সংস্করণ নম্বর পরীক্ষা করুন. উদাহরণস্বরূপ, যদি আপনি সংস্করণ 3.1.0 ইনস্টল করেন:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.1.0
        
  3. অবশেষে, edgemicro-auth প্রক্সির সর্বশেষ সংস্করণে আপগ্রেড করুন:
    edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME

কনফিগারেশন পরিবর্তন করা

আপনার যে কনফিগারেশন ফাইলগুলি সম্পর্কে জানতে হবে তার মধ্যে রয়েছে:

  • ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
  • একটি নতুন আরম্ভকৃত এজ মাইক্রোগেটওয়ে উদাহরণের জন্য ডিফল্ট কনফিগার ফাইল
  • চলমান উদাহরণের জন্য ডায়নামিক কনফিগারেশন ফাইল

এই বিভাগে এই ফাইলগুলি এবং সেগুলি পরিবর্তন করার বিষয়ে আপনার যা জানা দরকার তা নিয়ে আলোচনা করা হয়েছে৷

ডিফল্ট সিস্টেম কনফিগারেশন ফাইল

আপনি যখন এজ মাইক্রোগেটওয়ে ইনস্টল করেন, তখন একটি ডিফল্ট সিস্টেম কনফিগারেশন ফাইল এখানে রাখা হয়:

prefix/lib/node_modules/edgemicro/config/default.yaml

যেখানে prefix হল npm উপসর্গ ডিরেক্টরি। আপনি এই ডিরেক্টরিটি সনাক্ত করতে না পারলে এজ মাইক্রোগেটওয়ে কোথায় ইনস্টল করা আছে তা দেখুন।

আপনি যদি সিস্টেম কনফিগার ফাইলটি পরিবর্তন করেন তবে আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ে পুনরায় চালু করতে হবে, পুনরায় কনফিগার করতে হবে এবং পুনরায় চালু করতে হবে:

edgemicro init
edgemicro configure [params]
edgemicro start [params]

নতুন আরম্ভ করা এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলির জন্য ডিফল্ট কনফিগার ফাইল

আপনি যখন edgemicro init চালান, তখন সিস্টেম কনফিগার ফাইল (উপরে বর্ণিত), default.yaml , ~/.edgemicro ডিরেক্টরিতে স্থাপন করা হয়।

আপনি যদি ~/.edgemicro এ কনফিগার ফাইলটি পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ে পুনরায় কনফিগার করে পুনরায় চালু করতে হবে:

edgemicro stop
edgemicro configure [params]
edgemicro start [params]

চলমান উদাহরণের জন্য ডায়নামিক কনফিগারেশন ফাইল

আপনি যখন edgemicro configure [params] চালান, তখন ~/.edgemicro এ একটি ডায়নামিক কনফিগারেশন ফাইল তৈরি হয়। এই প্যাটার্ন অনুসারে ফাইলটির নামকরণ করা হয়েছে: org - env -config.yaml , যেখানে org এবং env হল আপনার Apigee Edge প্রতিষ্ঠান এবং পরিবেশের নাম। আপনি কনফিগারেশন পরিবর্তন করতে এই ফাইলটি ব্যবহার করতে পারেন, এবং তারপর শূন্য-ডাউনটাইম দিয়ে পুনরায় লোড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি প্লাগইন যোগ করেন এবং কনফিগার করেন, তাহলে নিচের ব্যাখ্যা অনুযায়ী কোনো ডাউনটাইম খরচ না করে আপনি কনফিগারেশনটি পুনরায় লোড করতে পারেন।

যদি এজ মাইক্রোগেটওয়ে চলছে (শূন্য-ডাউনটাইম বিকল্প):

  1. এজ মাইক্রোগেটওয়ে কনফিগারেশনটি পুনরায় লোড করুন:
    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

যদি এজ মাইক্রোগেটওয়ে বন্ধ করা হয়:

  1. এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন:
    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 কনফিগার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Openssl ইউটিলিটি বা আপনার পছন্দের যে কোনও পদ্ধতি ব্যবহার করে একটি SSL শংসাপত্র এবং কী তৈরি করুন বা প্রাপ্ত করুন।
  2. এজ মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে 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
  3. এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। আপনি কোন কনফিগারেশন ফাইলটি সম্পাদনা করেছেন তার উপর নির্ভর করে কনফিগারেশন পরিবর্তন করার ক্ষেত্রে বর্ণিত ধাপগুলি অনুসরণ করুন: ডিফল্ট ফাইল বা রানটাইম কনফিগারেশন ফাইল।

এখানে 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

এখানে সমর্থিত ক্লায়েন্ট বিকল্পগুলির একটি তালিকা রয়েছে:

অপশন বর্ণনা
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 এবং একটি লগ ফাইল উভয়েই লগ পাঠাতে পারবেন না।

লগিং লেভেল কিভাবে সেট করবেন

আপনি এই লগ স্তরগুলি সেট করতে পারেন: তথ্য , সতর্ক , এবং ত্রুটি ৷ তথ্য স্তর সুপারিশ করা হয়. এটি সমস্ত API অনুরোধ এবং প্রতিক্রিয়াগুলি লগ করে এবং এটি ডিফল্ট৷

লগের ব্যবধান কিভাবে পরিবর্তন করবেন

আপনি এজ মাইক্রোগেটওয়ে কনফিগার ফাইলে এই ব্যবধানগুলি কনফিগার করতে পারেন। কনফিগারেশন পরিবর্তন করাও দেখুন।

কনফিগারযোগ্য বৈশিষ্ট্যগুলি হল:

  • 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

ভাল লগ ফাইল রক্ষণাবেক্ষণ অনুশীলন

লগ ফাইল ডেটা সময়ের সাথে জমা হওয়ার সাথে সাথে, Apigee সুপারিশ করে যে আপনি নিম্নলিখিত অনুশীলনগুলি গ্রহণ করুন:

লগ ফাইল নামকরণ কনভেনশন

প্রতিটি এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স তিন ধরনের লগ ফাইল তৈরি করে:

  • api - এজ মাইক্রোগেটওয়ের মাধ্যমে প্রবাহিত সমস্ত অনুরোধ এবং প্রতিক্রিয়া লগ করে। API কাউন্টার (পরিসংখ্যান) এবং ত্রুটিগুলিও এই ফাইলে লগ করা হয়েছে৷
  • err - stderr এ পাঠানো যেকোনো কিছু লগ করে।
  • আউট - 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 এবং 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 - ইউনিক্স তারিখ স্ট্যাম্প
  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে তথ্য, সতর্কতা বা ত্রুটি হতে পারে। একটি পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা ত্রুটির জন্য ত্রুটি হতে পারে।
  • 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 - ইউনিক্স তারিখ স্ট্যাম্প
  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে তথ্য, সতর্কতা বা ত্রুটি হতে পারে। একটি পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা ত্রুটির জন্য ত্রুটি হতে পারে।
  • treq - ইভেন্ট সনাক্ত করে। এই ক্ষেত্রে, লক্ষ্য অনুরোধ.
  • m - লক্ষ্য অনুরোধে ব্যবহৃত HTTP ক্রিয়া।
  • u - বেসপাথ অনুসরণ করে URL এর অংশ।
  • h - ব্যাকএন্ড টার্গেটের হোস্ট এবং পোর্ট নম্বর।
  • i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।

3. লক্ষ্য থেকে আগত প্রতিক্রিয়ার নমুনা

1436403888672 info tres s=200, d=7, i=0

1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প

  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে তথ্য, সতর্কতা বা ত্রুটি হতে পারে। একটি পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা ত্রুটির জন্য ত্রুটি হতে পারে।
  • tres - ঘটনা চিহ্নিত করে। এই ক্ষেত্রে, লক্ষ্য প্রতিক্রিয়া.
  • s - HTTP প্রতিক্রিয়া স্থিতি।
  • d - মিলিসেকেন্ডে সময়কাল। টার্গেট দ্বারা API কলের জন্য সময় লাগে।
  • i - লগ এন্ট্রির আইডি। চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।

4. ক্লায়েন্ট বহির্গামী প্রতিক্রিয়া নমুনা

1436403888676 info res s=200, d=11, i=0

1436403888651 - ইউনিক্স তারিখ স্ট্যাম্প

  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে তথ্য, সতর্কতা বা ত্রুটি হতে পারে। একটি পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা ত্রুটির জন্য ত্রুটি হতে পারে।
  • 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 এর চেয়ে বড় সংখ্যায় সেট করুন।
  • লগিং :
    • স্তর : (ডিফল্ট: ত্রুটি)
      • তথ্য - একটি এজ মাইক্রোগেটওয়ে উদাহরণের মাধ্যমে প্রবাহিত সমস্ত অনুরোধ এবং প্রতিক্রিয়া লগ করে।
      • সতর্কতা - শুধুমাত্র সতর্ক বার্তা লগ করুন।
      • ত্রুটি - লগ ত্রুটি বার্তা শুধুমাত্র.
    • 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

শিরোনাম বৈশিষ্ট্য

এই সেটিংসগুলি কনফিগার করে যে কীভাবে নির্দিষ্ট 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":[

         ]
      }
   ]
}

কাস্টম বৈশিষ্ট্য দ্বারা পণ্য ফিল্টারিং

কাস্টম বৈশিষ্ট্যের উপর ভিত্তি করে পণ্য ফিল্টার করতে:

  1. এজ UI-তে, আপনি যে প্রতিষ্ঠান/পরিবেশে এজ মাইক্রোগেটওয়ে কনফিগার করেছেন সেখানে edgemicro_auth প্রক্সি নির্বাচন করুন।
  2. ডেভেলপ ট্যাপে, এডিটরে JavaCallout নীতি খুলুন।
  3. কী products.filter.attributes এর সাথে একটি কাস্টম অ্যাট্রিবিউট যোগ করুন কমা দ্বারা আলাদা করা অ্যাট্রিবিউট নামের তালিকার সাথে। শুধুমাত্র যে পণ্যগুলিতে কাস্টম অ্যাট্রিবিউটের নাম রয়েছে তা এজ মাইক্রোগেটওয়েতে ফেরত দেওয়া হবে।
  4. কাস্টম অ্যাট্রিবিউট products.filter.env.enable কে false এ সেট করে বর্তমান পরিবেশের জন্য পণ্যটি সক্ষম হয়েছে কিনা তা দেখতে আপনি ঐচ্ছিকভাবে চেকটি নিষ্ক্রিয় করতে পারেন। (ডিফল্ট সত্য।)
  5. (শুধু ব্যক্তিগত ক্লাউড) আপনি যদি ব্যক্তিগত ক্লাউডের জন্য প্রান্তে থাকেন তবে নন-সিপিএস পরিবেশের জন্য পণ্যগুলিকে টানতে org.noncps সম্পত্তিটিকে true সেট করুন।
  6. যেমন:

    <?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 প্রক্সি ব্যবহার করতে, নিম্নলিখিতগুলি করুন:

  1. এনভায়রনমেন্ট ভেরিয়েবল 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 দেখুন

  2. এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন।

লক্ষ্য যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করুন

সংস্করণ 3.1.2 এ যোগ করা হয়েছে।

এজ মাইক্রোগেটওয়ে এবং ব্যাকএন্ড লক্ষ্যগুলির মধ্যে যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করতে, নিম্নলিখিতগুলি করুন:

  1. মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে নিম্নলিখিত কনফিগারেশন যোগ করুন:
    edgemicro:
      proxy:
        tunnel: true | false
        url: proxy_url
        bypass: target_host # target hosts to bypass the proxy.
        enabled: true | false

    কোথায়:

    • টানেল : (ঐচ্ছিক) সত্য হলে, এজ মাইক্রোগেটওয়ে একটি একক TCP সংযোগের মাধ্যমে HTTP অনুরোধগুলিকে টানেল করতে HTTP CONNECT পদ্ধতি ব্যবহার করে। (প্রক্সি কনফিগার করার জন্য নীচে উল্লিখিত এনভায়রনমেন্ট ভেরিয়েবলগুলি যদি TLS সক্রিয় থাকে তবে একই কথা সত্য)। ডিফল্ট: false
    • url : HTTP প্রক্সি URL।
    • বাইপাস : (ঐচ্ছিক) এক বা একাধিক কমা-বিভক্ত টার্গেট হোস্ট ইউআরএল নির্দিষ্ট করে যা HTTP প্রক্সিকে বাইপাস করতে হবে। যদি এই প্রপার্টি সেট করা না থাকে, তাহলে কোন টার্গেট URLগুলিকে বাইপাস করতে হবে তা নির্দিষ্ট করতে NO_PROXY এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন৷
    • সক্রিয় : সত্য এবং proxy.url সেট করা থাকলে, HTTP প্রক্সির জন্য proxy.url মান ব্যবহার করুন। যদি true এবং proxy.url সেট করা না থাকে, তাহলে HTTP প্রক্সি এনভায়রনমেন্ট ভেরিয়েবল HTTP_PROXY এবং HTTPS_PROXY এ উল্লিখিত প্রক্সিগুলি ব্যবহার করুন, যেমন Apigee Edge-এর সাথে যোগাযোগের জন্য একটি HTTP প্রক্সি ব্যবহার করুন

    যেমন:

    edgemicro:
      proxy:
        tunnel: true
        url: 'http://localhost:3786'
        bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy.
        enabled: true

  2. এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন।

মাইক্রোগেটওয়ে-সচেতন প্রক্সিগুলিতে ওয়াইল্ডকার্ড ব্যবহার করা

আপনি একটি এজমিক্রো_* (মাইক্রোগেটওয়ে-সচেতন) প্রক্সির বেস পাথে এক বা একাধিক "*" ওয়াইল্ডকার্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, /team/*/members- এর একটি বেস পাথ ক্লায়েন্টদের https://[host]/team/blue/members এবং https://[host]/team/green/members কল করার অনুমতি দেয় আপনাকে নতুন তৈরি করার প্রয়োজন ছাড়াই নতুন দলকে সমর্থন করার জন্য API প্রক্সি। নোট করুন যে /**/ সমর্থিত নয়।

গুরুত্বপূর্ণ: Apigee একটি বেস পাথের প্রথম উপাদান হিসাবে একটি ওয়াইল্ডকার্ড "*" ব্যবহার করা সমর্থন করে না। উদাহরণস্বরূপ, এটি সমর্থিত নয়: /*/ অনুসন্ধান।

ঘোরানো JWT কী

আপনি প্রাথমিকভাবে একটি JWT তৈরি করার পরে কিছু সময়ে, আপনাকে এজ এনক্রিপ্ট করা KVM-এ সঞ্চিত সর্বজনীন/প্রাইভেট কী জোড়া পরিবর্তন করতে হতে পারে। একটি নতুন কী জোড়া তৈরি করার এই প্রক্রিয়াটিকে কী রোটেশন বলা হয়।

কিভাবে এজ মাইক্রোগেটওয়ে JWTs ব্যবহার করে

JSON ওয়েব টোকেন (JWT) হল RFC7519- এ বর্ণিত একটি টোকেন স্ট্যান্ডার্ড। JWT দাবির একটি সেট স্বাক্ষর করার একটি উপায় প্রদান করে, যা JWT প্রাপকের দ্বারা নির্ভরযোগ্যভাবে যাচাই করা যেতে পারে।

আপনি CLI ব্যবহার করে একটি JWT তৈরি করতে পারেন এবং API কী এর পরিবর্তে API কলের অনুমোদন শিরোনামে এটি ব্যবহার করতে পারেন। যেমন:

curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"

CLI দিয়ে JWT তৈরি করার তথ্যের জন্য, একটি টোকেন তৈরি করুন দেখুন।

কী ঘূর্ণন কি?

আপনি প্রাথমিকভাবে একটি JWT তৈরি করার পরে কিছু সময়ে, আপনাকে এজ এনক্রিপ্ট করা KVM-এ সঞ্চিত সর্বজনীন/প্রাইভেট কী জোড়া পরিবর্তন করতে হতে পারে। একটি নতুন কী জোড়া তৈরি করার এই প্রক্রিয়াটিকে কী রোটেশন বলা হয়। যখন আপনি কীগুলি ঘোরান, তখন একটি নতুন ব্যক্তিগত/পাবলিক কী জোড়া তৈরি হয় এবং আপনার Apigee Edge প্রতিষ্ঠান/পরিবেশে "মাইক্রোগেটওয়ে" KVM-এ সংরক্ষণ করা হয়। উপরন্তু, পুরানো পাবলিক কী এর মূল কী আইডি মান সহ ধরে রাখা হয়।

একটি JWT তৈরি করতে, Edge এনক্রিপ্ট করা KVM-এ সংরক্ষিত তথ্য ব্যবহার করে। আপনি যখন প্রাথমিকভাবে এজ মাইক্রোগেটওয়ে সেট আপ (কনফিগার করেছেন) তখন microgateway নামক একটি KVM তৈরি করা হয়েছিল এবং কী দিয়ে পপুলেট করা হয়েছিল। KVM-এর কীগুলি একটি JWT-এ স্বাক্ষর এবং এনক্রিপ্ট করতে ব্যবহৃত হয়।

KVM কীগুলির মধ্যে রয়েছে:

  • private_key - সর্বশেষ (সবচেয়ে সম্প্রতি তৈরি) RSA প্রাইভেট কী JWT-তে স্বাক্ষর করতে ব্যবহৃত হয়।

  • public_key - প্রাইভেট_কি দিয়ে স্বাক্ষরিত JWT যাচাই করতে ব্যবহৃত সর্বশেষ (সবচেয়ে সম্প্রতি তৈরি) শংসাপত্র।

  • private_key_kid - সর্বশেষ (সবচেয়ে সম্প্রতি তৈরি) ব্যক্তিগত কী আইডি। এই কী আইডিটি প্রাইভেট_কি মানের সাথে যুক্ত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়।

  • public_key1_kid - সর্বশেষ (সবচেয়ে সম্প্রতি তৈরি) পাবলিক কী আইডি। এই কী public_key1 মানের সাথে যুক্ত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়। এই মান প্রাইভেট কী কিডের সমান।

  • public_key1 - সর্বশেষ (সবচেয়ে সম্প্রতি তৈরি) পাবলিক কী।

আপনি যখন কী ঘূর্ণন সঞ্চালন করেন, বিদ্যমান কী মানগুলি মানচিত্রে প্রতিস্থাপিত হয় এবং পুরানো সর্বজনীন কীগুলিকে ধরে রাখতে নতুন কী যুক্ত করা হয়। যেমন:

  • public_key2_kid - পুরানো পাবলিক কী আইডি। এই কী public_key2 মানের সাথে যুক্ত এবং কী ঘূর্ণন সমর্থন করতে ব্যবহৃত হয়।

  • public_key2 - পুরানো পাবলিক কী।

যাচাইয়ের জন্য উপস্থাপিত JWTs নতুন পাবলিক কী ব্যবহার করে যাচাই করা হবে। যদি যাচাইকরণ ব্যর্থ হয়, তাহলে JWT-এর মেয়াদ শেষ না হওয়া পর্যন্ত পুরানো পাবলিক কী ব্যবহার করা হবে (টোকেন_এক্সপিরি* ব্যবধানের পরে, ডিফল্ট 30 মিনিট)। এইভাবে, আপনি অবিলম্বে API ট্র্যাফিক ব্যাহত না করে কীগুলি "ঘোরাতে" পারেন৷

কীভাবে কী ঘূর্ণন করবেন

এই বিভাগটি ব্যাখ্যা করে কিভাবে একটি কী ঘূর্ণন করতে হয়।

  1. KVM আপগ্রেড করতে, edgemicro upgradekvm কমান্ডটি ব্যবহার করুন। এই কমান্ড চালানোর বিষয়ে বিস্তারিত জানতে, KVM আপগ্রেড করা দেখুন। আপনি শুধুমাত্র একবার এই পদক্ষেপ করতে হবে.
  2. edgemicro-oauth প্রক্সি আপগ্রেড করতে, edgemicro upgradeauth কমান্ডটি ব্যবহার করুন। এই কমান্ডটি চালানোর বিষয়ে বিস্তারিত জানার জন্য, edgemicro-auth প্রক্সি উগ্রেড করা দেখুন। আপনি শুধুমাত্র একবার এই পদক্ষেপ করতে হবে.
  3. আপনার ~/.edgemicro/org-env-config.yaml ফাইলে নিম্নলিখিত লাইনটি যোগ করুন, যেখানে আপনাকে অবশ্যই একই সংস্থা এবং পরিবেশ উল্লেখ করতে হবে যা আপনি ব্যবহার করার জন্য মাইক্রোগেটওয়ে কনফিগার করেছেন:
    jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
  4. কীগুলি ঘোরানোর জন্য কী ঘূর্ণন কমান্ডটি চালান। এই কমান্ডের বিশদ বিবরণের জন্য, ঘূর্ণায়মান কীগুলি দেখুন।

    edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET

    যেমন:

    edgemicro rotatekey -o docs -e test \
    -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
    -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
    

কী ঘোরানোর পরে, এজ এজ মাইক্রোগেটওয়েতে একাধিক কী ফেরত দেয়। নিম্নলিখিত উদাহরণে নোট করুন, প্রতিটি কী-এর একটি অনন্য "কিড" (কী আইডি) মান রয়েছে৷ মাইক্রোগেটওয়ে তারপর অনুমোদন টোকেন যাচাই করতে এই কীগুলি ব্যবহার করে। টোকেন বৈধতা ব্যর্থ হলে, মাইক্রোগেটওয়ে কী সেটে একটি পুরানো কী আছে কিনা তা দেখে এবং সেই কীটি চেষ্টা করে। ফিরে আসা কীগুলির বিন্যাস হল JSON ওয়েব কী (JWK)। আপনি RFC 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"
    }
  ]
}

একটি "আগে নয়" বিলম্ব কনফিগার করা হচ্ছে

সংস্করণ 3.1.5 এবং পূর্বে, rotatekey কমান্ড দ্বারা উত্পন্ন নতুন প্রাইভেট কী অবিলম্বে কার্যকর হয়, এবং নতুন টোকেনগুলি নতুন ব্যক্তিগত কী দিয়ে স্বাক্ষরিত হয়। যাইহোক, নতুন পাবলিক কী শুধুমাত্র প্রতি 10 মিনিটে (ডিফল্টরূপে) এজ মাইক্রোগেটওয়ে ইনস্ট্যান্সে উপলব্ধ করা হয়েছিল যখন মাইক্রোগেটওয়ে কনফিগারেশন রিফ্রেশ করা হয়েছিল। টোকেন সাইনিং এবং মাইক্রোগেটওয়ে ইন্সট্যান্স রিফ্রেশের মধ্যে এই ব্যবধানের কারণে, সাম্প্রতিক কী সহ স্বাক্ষরিত টোকেনগুলি প্রত্যাখ্যান করা হবে যতক্ষণ না সমস্ত দৃষ্টান্ত সর্বজনীন সর্বশেষ কী না পায়৷

এমন ক্ষেত্রে যেখানে একাধিক মাইক্রোগেটওয়ে দৃষ্টান্ত বিদ্যমান, সর্বজনীন কী ল্যাগ কখনও কখনও স্ট্যাটাস 403 সহ বিরতিহীন রানটাইম ত্রুটির ফলে, কারণ টোকেন বৈধতা একটি দৃষ্টান্তে পাস হবে, কিন্তু সমস্ত দৃষ্টান্ত রিফ্রেশ না হওয়া পর্যন্ত অন্য একটি উদাহরণে ব্যর্থ হবে৷

সংস্করণ 3.1.6 থেকে শুরু করে, rotatekey কমান্ডে একটি নতুন পতাকা আপনাকে নতুন প্রাইভেট কী কার্যকর হওয়ার জন্য বিলম্ব নির্দিষ্ট করতে দেয়, সমস্ত মাইক্রোগেটওয়ে দৃষ্টান্তগুলিকে রিফ্রেশ করতে এবং নতুন পাবলিক কী গ্রহণ করার জন্য সময় দেয়। নতুন পতাকা হল --nbf , যার অর্থ "আগে নয়।" এই পতাকা একটি পূর্ণসংখ্যা মান লাগে, বিলম্ব মিনিটের সংখ্যা.

নিম্নলিখিত উদাহরণে, বিলম্বটি 15 মিনিটে সেট করা হয়েছে:

edgemicro rotatekey -o docs -e test \
-k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
-s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \
--nbf 15

মনে রাখবেন যে একটি ভাল অভ্যাস হল বিলম্বকে config_change_poll_internal কনফিগারেশন সেটিংসের চেয়ে বেশি সেট করা, যা ডিফল্টরূপে 10 মিনিট। এজমাইক্রো বৈশিষ্ট্যগুলিও দেখুন।

ডাউনলোড করা প্রক্সি ফিল্টার করা হচ্ছে

ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে আপনার এজ প্রতিষ্ঠানের সমস্ত প্রক্সি ডাউনলোড করে যা "edgemicro_" নামকরণের উপসর্গ দিয়ে শুরু হয়। আপনি প্রক্সি ডাউনলোড করতে এই ডিফল্ট পরিবর্তন করতে পারেন যার নাম একটি প্যাটার্নের সাথে মেলে৷

  1. আপনার এজ মাইক্রো কনফিগারেশন ফাইলটি খুলুন: ~/.edgemicro/org-env-config.yaml
  2. edge_config এর অধীনে proxyPattern উপাদান যোগ করুন। উদাহরণস্বরূপ, নিম্নলিখিত প্যাটার্নটি প্রক্সি ডাউনলোড করবে যেমন edgemicro_foo, edgemicro_fast এবং edgemicro_first।
    edge_config:proxyPattern: edgemicro_f*

API প্রক্সি ছাড়া পণ্য নির্দিষ্ট করা

Apigee Edge এ, আপনি একটি API পণ্য তৈরি করতে পারেন যাতে কোনো API প্রক্সি থাকে না। এই পণ্য কনফিগারেশন সেই পণ্যের সাথে যুক্ত একটি API কীকে আপনার প্রতিষ্ঠানে নিয়োজিত যেকোনো প্রক্সির সাথে কাজ করার অনুমতি দেয়। সংস্করণ 2.5.4 অনুযায়ী, এজ মাইক্রোগেটওয়ে এই পণ্য কনফিগারেশন সমর্থন করে।

ডিবাগিং এবং সমস্যা সমাধান

একটি ডিবাগারের সাথে সংযোগ করা হচ্ছে৷

আপনি একটি ডিবাগার দিয়ে এজ মাইক্রোগেটওয়ে চালাতে পারেন, যেমন নোড-ইন্সপেক্টর । এটি সমস্যা সমাধান এবং কাস্টম প্লাগইন ডিবাগ করার জন্য দরকারী।

  1. ডিবাগ মোডে এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। এটি করতে, 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

  2. আপনার ডিবাগার শুরু করুন এবং ডিবাগিং প্রক্রিয়ার জন্য পোর্ট নম্বরে শুনতে এটি সেট করুন।
  3. আপনি এখন এজ মাইক্রোগেটওয়ে কোডের মধ্য দিয়ে যেতে পারেন, ব্রেকপয়েন্ট সেট করতে পারেন, এক্সপ্রেশন দেখতে পারেন এবং আরও অনেক কিছু করতে পারেন।

আপনি ডিবাগ মোড সম্পর্কিত স্ট্যান্ডার্ড Node.js পতাকা নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, --nolazy অ্যাসিঙ্ক্রোনাস কোড ডিবাগ করতে সাহায্য করে।

লগ ফাইল চেক করা হচ্ছে

যদি আপনার সমস্যা হয়, এক্সিকিউশন বিশদ এবং ত্রুটি তথ্যের জন্য লগ ফাইলগুলি পরীক্ষা করতে ভুলবেন না। বিস্তারিত জানার জন্য, লগ ফাইল পরিচালনা দেখুন।

API কী নিরাপত্তা ব্যবহার করে

এজ মাইক্রোগেটওয়েতে অনুরোধ করা ক্লায়েন্টদের প্রমাণীকরণের জন্য API কীগুলি একটি সহজ পদ্ধতি প্রদান করে। আপনি এজ মাইক্রোগেটওয়ে প্রমাণীকরণ প্রক্সি অন্তর্ভুক্ত Apigee এজ পণ্য থেকে কনজিউমার কী (ক্লায়েন্ট আইডিও বলা হয়) মান অনুলিপি করে একটি API কী পেতে পারেন।

কী ক্যাশিং

API কীগুলি বহনকারী টোকেনের জন্য বিনিময় করা হয়, যা ক্যাশে করা হয়। আপনি এজ মাইক্রোগেটওয়েতে ইনকামিং রিকোয়েস্টে Cache-Control: no-cache হেডার সেট করে ক্যাশিং অক্ষম করতে পারেন।

একটি API কী ব্যবহার করে

আপনি একটি API অনুরোধে একটি ক্যোয়ারী প্যারামিটার বা একটি হেডার হিসাবে API কী পাস করতে পারেন৷ ডিফল্টরূপে, হেডার এবং ক্যোয়ারী প্যারাম নাম উভয়ই x-api-key

প্রশ্ন প্যারামিটার উদাহরণ:

curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz

হেডার উদাহরণ:

curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

API কী নাম কনফিগার করা হচ্ছে

ডিফল্টরূপে, x-api-key হল API কী শিরোনাম এবং ক্যোয়ারী প্যারামিটার উভয়ের জন্য ব্যবহৃত নাম। আপনি কনফিগারেশন ফাইলে এই ডিফল্টটি পরিবর্তন করতে পারেন, যেমনটি কনফিগারেশন পরিবর্তন করা এ ব্যাখ্যা করা হয়েছে। উদাহরণস্বরূপ, apiKey নামটি পরিবর্তন করতে:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  api-key-header: apiKey

এই উদাহরণে, ক্যোয়ারী প্যারামিটার এবং হেডার নাম উভয়ই apiKey এ পরিবর্তিত হয়েছে। x-api-key নামটি উভয় ক্ষেত্রেই আর কাজ করবে না। কনফিগারেশন পরিবর্তন করাও দেখুন।

যেমন:

curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

প্রক্সি অনুরোধের সাথে API কী ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, সিকিউর এজ মাইক্রোগেটওয়ে দেখুন।

আপস্ট্রিম প্রতিক্রিয়া কোড সক্রিয় করুন

ডিফল্টরূপে, oauth প্লাগইন শুধুমাত্র 4xx এরর স্ট্যাটাস কোড প্রদান করে যদি প্রতিক্রিয়া 200 স্ট্যাটাস না হয়। আপনি এই আচরণটি পরিবর্তন করতে পারেন যাতে ত্রুটির উপর নির্ভর করে এটি সর্বদা সঠিক 4xx বা 5xx কোড ফেরত দেয়।

এই বৈশিষ্ট্যটি সক্ষম করতে, আপনার এজ মাইক্রোগেটওয়ে কনফিগারেশনে oauth.useUpstreamResponse: true প্রপার্টি যোগ করুন। যেমন:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  gracePeriod: 10
  useUpstreamResponse: true

OAuth2 টোকেন নিরাপত্তা ব্যবহার করা হচ্ছে

এই বিভাগটি ব্যাখ্যা করে কিভাবে OAuth2 অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন পেতে হয়। মাইক্রোগেটওয়ের মাধ্যমে নিরাপদ API কল করতে অ্যাক্সেস টোকেন ব্যবহার করা হয়। নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করা হয়।

কিভাবে একটি অ্যাক্সেস টোকেন পেতে

এই বিভাগটি ব্যাখ্যা করে কিভাবে একটি অ্যাক্সেস টোকেন পেতে edgemicro-auth প্রক্সি ব্যবহার করতে হয়।

আপনি edgemicro token CLI কমান্ড ব্যবহার করে একটি অ্যাক্সেস টোকেনও পেতে পারেন। CLI এর বিস্তারিত জানার জন্য, টোকেন পরিচালনা দেখুন।

API 1: বডি প্যারামিটার হিসাবে শংসাপত্র পাঠান

URL-এ আপনার প্রতিষ্ঠান এবং পরিবেশের নামগুলি প্রতিস্থাপন করুন এবং ক্লায়েন্ট_আইডি এবং ক্লায়েন্ট_সিক্রেট বডি প্যারামিটারের জন্য Apigee এজ-এ একটি বিকাশকারী অ্যাপ থেকে প্রাপ্ত উপভোক্তা আইডি এবং গ্রাহক গোপনীয় মানগুলি প্রতিস্থাপন করুন:

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"

API 2: একটি মৌলিক প্রমাণীকরণ শিরোনামে শংসাপত্র পাঠান

একটি মৌলিক প্রমাণীকরণ শিরোনাম হিসাবে ক্লায়েন্ট শংসাপত্র এবং একটি ফর্ম প্যারামিটার হিসাবে grant_type পাঠান। এই কমান্ড ফর্মটি RFC 6749: The OAuth 2.0 Authorization Framework- এও আলোচনা করা হয়েছে।

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"

নমুনা আউটপুট

API একটি JSON প্রতিক্রিয়া প্রদান করে। মনে রাখবেন যে token এবং access_token বৈশিষ্ট্যের মধ্যে কোন পার্থক্য নেই। আপনি যেকোনো একটি ব্যবহার করতে পারেন।
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": "108000"
}

কিভাবে একটি রিফ্রেশ টোকেন পেতে

একটি রিফ্রেশ টোকেন পেতে, edgemicro-auth প্রক্সির /token এন্ডপয়েন্টে একটি API কল করুন। আপনাকে অবশ্যই password অনুদানের প্রকারের সাথে এই API কলটি করতে হবে৷ নিম্নলিখিত পদক্ষেপগুলি প্রক্রিয়াটির মধ্য দিয়ে চলে।

  1. একটি অ্যাক্সেস পান এবং /token API দিয়ে টোকেন রিফ্রেশ করুন। নোট করুন যে অনুদানের ধরন হল 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"
    }'

    API একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন প্রদান করে। প্রতিক্রিয়া এই অনুরূপ দেখায়:

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": "108000",
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": "431999",
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  2. আপনি এখন একই API এর /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"
    }'

    API একটি নতুন অ্যাক্সেস টোকেন প্রদান করে। প্রতিক্রিয়া এই অনুরূপ দেখায়:

    {
        "token": "your-new-access-token"
        }

চিরকাল পর্যবেক্ষণ

ফরএভার হল একটি Node.js টুল যেটি স্বয়ংক্রিয়ভাবে একটি Node.js অ্যাপ রিস্টার্ট করে যদি প্রক্রিয়াটি বন্ধ হয়ে যায় বা কোনো ত্রুটি থাকে। Edge Microgateway-এ একটি forever.json ফাইল রয়েছে যেটি আপনি কতবার এবং কি ব্যবধানে এজ মাইক্রোগেটওয়ে পুনরায় চালু করতে হবে তা নিয়ন্ত্রণ করতে কনফিগার করতে পারেন। এই ফাইলটি ফরএভার-মনিটর নামে একটি ফরএভার পরিষেবা কনফিগার করে, যা ফরএভার প্রোগ্রাম্যাটিকভাবে পরিচালনা করে।

আপনি Edge Microgateway root install ডিরেক্টরিতে forever.json ফাইলটি খুঁজে পেতে পারেন। এজ মাইক্রোগেটওয়ে কোথায় ইনস্টল করা আছে দেখুন। কনফিগারেশন অপশনের বিস্তারিত জানার জন্য, forever-monitor ডকুমেন্টেশন পড়ুন।

edgemicro forever কমান্ডের মধ্যে পতাকা রয়েছে যা আপনাকে forever.json ফাইলের অবস্থান নির্দিষ্ট করতে দেয় ( -f পতাকা), এবং ফরএভার মনিটরিং প্রক্রিয়া ( -a পতাকা) শুরু/বন্ধ করতে দেয়। যেমন:

edgemicro forever -f ~/mydir/forever.json -a start

আরও তথ্যের জন্য, CLI রেফারেন্সে ফরএভার মনিটরিং দেখুন।

একটি কনফিগার ফাইল এন্ডপয়েন্ট নির্দিষ্ট করা হচ্ছে

আপনি যদি একাধিক এজ মাইক্রোগেটওয়ে দৃষ্টান্ত চালান, আপনি একটি একক অবস্থান থেকে তাদের কনফিগারেশন পরিচালনা করতে চাইতে পারেন। আপনি একটি HTTP এন্ডপয়েন্ট উল্লেখ করে এটি করতে পারেন যেখানে এজ মাইক্রো তার কনফিগারেশন ফাইল ডাউনলোড করতে পারে। আপনি -u পতাকা ব্যবহার করে এজ মাইক্রো শুরু করার সময় আপনি এই শেষ পয়েন্টটি নির্দিষ্ট করতে পারেন।

যেমন:

edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key

যেখানে mgconfig এন্ডপয়েন্ট আপনার কনফিগারেশন ফাইলের বিষয়বস্তু ফেরত দেয়। এটি সেই ফাইল যা ডিফল্টরূপে ~/.edgemicro এ অবস্থিত এবং নামকরণের নিয়ম রয়েছে: org-env-config.yaml

TCP সংযোগ ডেটা বাফারিং অক্ষম করা হচ্ছে৷

আপনি এজ মাইক্রোগেটওয়ে দ্বারা ব্যবহৃত TCP সংযোগগুলির জন্য ডেটা বাফারিং নিষ্ক্রিয় করতে nodelay কনফিগারেশন বৈশিষ্ট্যটি ব্যবহার করতে পারেন।

ডিফল্টভাবে TCP সংযোগগুলি ডাটা পাঠানোর আগে বাফার করার জন্য Nagle অ্যালগরিদম ব্যবহার করে। nodelay to true তে সেট করা , এই আচরণটি নিষ্ক্রিয় করে (প্রতিবার socket.write() কল করা হলে ডেটা অবিলম্বে ডেটা বন্ধ করে দেবে)। আরও বিস্তারিত জানার জন্য Node.js ডকুমেন্টেশন দেখুন।

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

স্বতন্ত্র মোডে এজ মাইক্রোগেটওয়ে চলছে

আপনি যেকোন এপিজি এজ নির্ভরতা থেকে সম্পূর্ণভাবে সংযোগ বিচ্ছিন্ন এজ মাইক্রোগেটওয়ে চালাতে পারেন। এই দৃশ্যকল্প, যাকে বলা হয় স্বতন্ত্র মোড, আপনাকে ইন্টারনেট সংযোগ ছাড়াই এজ মাইক্রোগেটওয়ে চালাতে এবং পরীক্ষা করতে দেয়।

স্বতন্ত্র মোডে, নিম্নলিখিত বৈশিষ্ট্যগুলি কাজ করে না, কারণ তাদের Apigee Edge-এর সাথে সংযোগ প্রয়োজন:

  • OAuth এবং API কী
  • কোটা
  • বিশ্লেষণ

অন্যদিকে, কাস্টম প্লাগইন এবং স্পাইক অ্যারেস্ট সাধারণত কাজ করে, কারণ তাদের Apigee Edge-এর সাথে সংযোগের প্রয়োজন হয় না। এছাড়াও, extauth নামে একটি নতুন প্লাগইন আপনাকে স্বতন্ত্র মোডে থাকাকালীন JWT সহ মাইক্রোগেটওয়েতে API কল অনুমোদন করতে দেয়।

গেটওয়ে কনফিগার করা এবং শুরু করা

স্বতন্ত্র মোডে এজ মাইক্রোগেটওয়ে চালানোর জন্য:

  1. নিম্নলিখিত নামে একটি কনফিগারেশন ফাইল তৈরি করুন: $HOME/.edgemicro/ $ORG - $ENV -config.yaml

    যেমন:

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. ফাইলে নিম্নলিখিত কোড পেস্ট করুন:
    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
  3. "1" মান সহ নিম্নলিখিত পরিবেশ পরিবর্তনশীল রপ্তানি করুন:
    export EDGEMICRO_LOCAL=1
  4. নিম্নলিখিত start কমান্ডটি চালান, যেখানে আপনি স্থানীয় প্রক্সিকে ইনস্ট্যান্ট করার জন্য মান প্রদান করেন:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    কোথায়:

    • $ORG হল "org" নাম যা আপনি কনফিগারেশন ফাইলের নামে ব্যবহার করেছেন।
    • $ENV হল "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 /
  5. কনফিগারেশন পরীক্ষা করুন।
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

    কারণ extauth প্লাগইন foo-bar-config.yaml ফাইলে আছে, আপনি একটি "missing_authorization" ত্রুটি পাবেন। এই প্লাগইনটি একটি JWT যাচাই করে যা API কলের অনুমোদন শিরোনামে উপস্থিত থাকতে হবে। পরবর্তী বিভাগে, আপনি একটি JWT পাবেন যা API কলগুলিকে ত্রুটি ছাড়াই যেতে দেবে।

উদাহরণ: একটি অনুমোদন টোকেন প্রাপ্তি

নিচের উদাহরণে দেখানো হয়েছে কিভাবে Apigee Edge ( edgemicro-auth/jwkPublicKeys ) এজ মাইক্রোগেটওয়ে JWT এন্ডপয়েন্ট থেকে JWT পেতে হয়। আপনি যখন এজ মাইক্রোগেটওয়ের একটি স্ট্যান্ডার্ড সেটআপ এবং কনফিগারেশন করেন তখন এই এন্ডপয়েন্টটি স্থাপন করা হয়। Apigee এন্ডপয়েন্ট থেকে JWT পেতে, আপনাকে প্রথমে স্ট্যান্ডার্ড এজ মাইক্রোগেটওয়ে সেটআপ করতে হবে এবং ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে। Apigee এন্ডপয়েন্ট এখানে শুধুমাত্র উদাহরণের উদ্দেশ্যে ব্যবহার করা হয়েছে এবং এর প্রয়োজন নেই। আপনি চাইলে অন্য JWT টোকেন এন্ডপয়েন্ট ব্যবহার করতে পারেন। যদি আপনি তা করেন, তাহলে আপনাকে সেই এন্ডপয়েন্টের জন্য প্রদত্ত API ব্যবহার করে JWT পেতে হবে।

নিম্নলিখিত ধাপগুলি ব্যাখ্যা করে কিভাবে edgemicro-auth/jwkPublicKeys এন্ডপয়েন্ট ব্যবহার করে একটি টোকেন পেতে হয়:

  1. Apigee Edge-এ আপনার প্রতিষ্ঠান/পরিবেশে edgemicro-auth প্রক্সি স্থাপন করতে আপনাকে Edge Microgateway-এর একটি মানক সেটআপ এবং কনফিগারেশন করতে হবে। আপনি যদি এই পদক্ষেপটি আগে করে থাকেন তবে আপনাকে এটি পুনরাবৃত্তি করতে হবে না।
  2. আপনি Apigee ক্লাউডে এজ মাইক্রোগেটওয়ে স্থাপন করলে, আপনাকে অবশ্যই ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে যাতে আপনি এই শেষ পয়েন্ট থেকে একটি JWT পেতে পারেন।
  3. স্টপ এজ মাইক্রোগেটওয়ে:
    edgemicro stop
  4. আপনার পূর্বে তৈরি করা কনফিগারেশন ফাইলে ( $HOME/.edgemicro / org - env -config.yaml ), extauth:publickey_url বৈশিষ্ট্যটি আপনার Apigee এজ সংস্থা/পরিবেশে edgemicro-auth/jwkPublicKeys এন্ডপয়েন্টে নির্দেশ করুন। যেমন:
    extauth:
      publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
  5. আপনি কনফিগার ফাইলের নামে যে org/env নামগুলি ব্যবহার করেছেন তা ব্যবহার করে আপনি পূর্বের মতো এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। যেমন:
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. অনুমোদনের শেষ পয়েন্ট থেকে একটি JWT টোকেন পান। যেহেতু আপনি edgemicro-auth/jwkPublicKeys এন্ডপয়েন্ট ব্যবহার করছেন, আপনি এই CLI কমান্ডটি ব্যবহার করতে পারেন:

আপনি edgemicro token কমান্ড বা একটি API ব্যবহার করে এজ মাইক্রোগেটওয়ের জন্য একটি JWT তৈরি করতে পারেন। যেমন:

edgemicro token get -o your_org -e your_env \
  -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

কোথায়:

  • your_org হল আপনার Apigee প্রতিষ্ঠানের নাম যার জন্য আপনি পূর্বে Edge Microgateway কনফিগার করেছেন।
  • your_env হল প্রতিষ্ঠানের একটি পরিবেশ।
  • i বিকল্পটি একটি ডেভেলপার অ্যাপ থেকে উপভোক্তা কী নির্দিষ্ট করে যাতে একটি পণ্য রয়েছে যাতে edgemicro-auth প্রক্সি অন্তর্ভুক্ত থাকে।
  • s বিকল্পটি একটি ডেভেলপার অ্যাপ থেকে উপভোক্তার গোপনীয়তা নির্দিষ্ট করে যাতে এমন একটি পণ্য রয়েছে যা edgemicro-auth প্রক্সি অন্তর্ভুক্ত করে।

এই কমান্ডটি Apigee Edge কে একটি JWT তৈরি করতে বলে যা পরে API কলগুলি যাচাই করতে ব্যবহার করা যেতে পারে।

এছাড়াও একটি টোকেন জেনারেট দেখুন।

স্বতন্ত্র কনফিগারেশন পরীক্ষা করুন

কনফিগারেশন পরীক্ষা করতে, অনুমোদন শিরোনামে যুক্ত টোকেন সহ API-কে নিম্নরূপ কল করুন:

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":""
}

স্থানীয় প্রক্সি মোড ব্যবহার করে

স্থানীয় প্রক্সি মোডে, এজ মাইক্রোগেটওয়ের অ্যাপিজি এজ-এ স্থাপন করার জন্য একটি মাইক্রোগেটওয়ে-সচেতন প্রক্সির প্রয়োজন হয় না। পরিবর্তে, আপনি মাইক্রোগেটওয়ে শুরু করার সময় একটি স্থানীয় প্রক্সি নাম, বেসপাথ এবং লক্ষ্য URL প্রদান করে একটি "স্থানীয় প্রক্সি" কনফিগার করেন৷ মাইক্রোগেটওয়েতে API কলগুলি স্থানীয় প্রক্সির লক্ষ্য URL-এ পাঠানো হয়। অন্য সব ক্ষেত্রে, স্থানীয় প্রক্সি মোড ঠিক একইভাবে কাজ করে যেটা এজ মাইক্রোগেটওয়েকে স্বাভাবিক মোডে চালানো হয়। প্রমাণীকরণ একই কাজ করে, যেমন স্পাইক অ্যারেস্ট এবং কোটা এনফোর্সমেন্ট, কাস্টম প্লাগইন ইত্যাদি।

কেস এবং উদাহরণ ব্যবহার করুন

স্থানীয় প্রক্সি মোড উপযোগী যখন আপনাকে শুধুমাত্র একটি এজ মাইক্রোগেটওয়ে উদাহরণের সাথে একটি একক প্রক্সি সংযুক্ত করতে হবে। উদাহরণস্বরূপ, আপনি এজ মাইক্রোগেটওয়েকে সাইডকার প্রক্সি হিসাবে কুবারনেটে ইনজেক্ট করতে পারেন, যেখানে একটি মাইক্রোগেটওয়ে এবং একটি পরিষেবা প্রতিটি একক পডে চলে এবং যেখানে মাইক্রোগেটওয়ে তার সহচর পরিষেবাতে এবং থেকে ট্র্যাফিক পরিচালনা করে৷ নিচের চিত্রটি এই আর্কিটেকচারকে চিত্রিত করে যেখানে এজ মাইক্রোগেটওয়ে একটি কুবারনেটস ক্লাস্টারে সাইডকার প্রক্সি হিসেবে কাজ করে। প্রতিটি মাইক্রোগেটওয়ে দৃষ্টান্ত তার সহচর পরিষেবাতে শুধুমাত্র একটি একক শেষ পয়েন্টে কথা বলে:

সাইডকার হিসেবে এজমাইক্রো

আর্কিটেকচারের এই শৈলীর একটি সুবিধা হল যে এজ মাইক্রোগেটওয়ে একটি কন্টেইনার পরিবেশে নিয়োজিত পৃথক পরিষেবাগুলির জন্য API ব্যবস্থাপনা প্রদান করে, যেমন একটি কুবারনেটস ক্লাস্টার।

স্থানীয় প্রক্সি মোড কনফিগার করা হচ্ছে

স্থানীয় প্রক্সি মোডে চালানোর জন্য এজ মাইক্রোগেটওয়ে কনফিগার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার স্থানীয় কনফিগারেশন পরিবেশ সেট আপ করতে edgemicro init চালান, ঠিক যেমন আপনি একটি সাধারণ এজ মাইক্রোগেটওয়ে সেটআপে করেন। এজ মাইক্রোগেটওয়ে কনফিগার করুন দেখুন।
  2. edgemicro configure চালান, যেমন আপনি একটি সাধারণ এজ মাইক্রোগেটওয়ে সেটআপ পদ্ধতিতে করবেন। যেমন:
    edgemicro configure -o your_org -e your_env -u your_apigee_username

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

  3. Apigee Edge-এ, একটি API পণ্য তৈরি করুন এবং নিম্নলিখিত বাধ্যতামূলক কনফিগারেশন প্রয়োজনীয়তা সহ (আপনি আপনার ইচ্ছামতো অন্যান্য সমস্ত কনফিগারেশন পরিচালনা করতে পারেন):
    • আপনাকে অবশ্যই পণ্যটিতে edgemicro-auth প্রক্সি যোগ করতে হবে। আপনি যখন edgemicro configure চালান তখন এই প্রক্সিটি স্বয়ংক্রিয়ভাবে স্থাপন করা হয়েছিল।
    • আপনি একটি সম্পদ পথ প্রদান করতে হবে . Apigee পণ্যটিতে এই পথটি যোগ করার পরামর্শ দেয়: /** । আরও জানতে, সম্পদ পথের আচরণ কনফিগার করা দেখুন। এজ ডকুমেন্টেশনে API পণ্য তৈরি করুন দেখুন।
  4. Apigee Edge এ, একটি বিকাশকারী তৈরি করুন, অথবা আপনি যদি চান তাহলে আপনি একটি বিদ্যমান বিকাশকারী ব্যবহার করতে পারেন। সাহায্যের জন্য, এজ ম্যানেজমেন্ট UI ব্যবহার করে ডেভেলপারদের যোগ করা দেখুন।

  5. Apigee Edge-এ, একটি ডেভেলপার অ্যাপ তৈরি করুন। অ্যাপটিতে আপনি যে API পণ্যটি তৈরি করেছেন তা আপনাকে অবশ্যই যোগ করতে হবে। সাহায্যের জন্য, এজ ম্যানেজমেন্ট UI এ একটি অ্যাপ নিবন্ধন করা দেখুন।
  6. মেশিনে যেখানে এজ মাইক্রোগেটওয়ে ইনস্টল করা আছে, "1" মান সহ নিম্নলিখিত পরিবেশ পরিবর্তনশীলটি রপ্তানি করুন।
    export EDGEMICRO_LOCAL_PROXY=1
  7. নিম্নলিখিত 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 হল আপনার Apigee প্রতিষ্ঠান।
    • 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"
}

এই প্রাথমিক API কলটি একটি ত্রুটি তৈরি করেছে কারণ আপনি একটি বৈধ API কী প্রদান করেননি৷ আপনি পূর্বে তৈরি করা বিকাশকারী অ্যাপে কীটি খুঁজে পেতে পারেন। এজ UI এ অ্যাপটি খুলুন, কনজিউমার কী অনুলিপি করুন এবং সেই কীটি নিম্নরূপ ব্যবহার করুন:

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":""
}

সিঙ্ক্রোনাইজার ব্যবহার করে

এই বিভাগটি ব্যাখ্যা করে যে কীভাবে সিঙ্ক্রোনাইজার ব্যবহার করতে হয়, একটি ঐচ্ছিক বৈশিষ্ট্য যা এজ মাইক্রোগেটওয়ের স্থিতিস্থাপকতা উন্নত করে যা এটিকে Apigee এজ থেকে কনফিগারেশন ডেটা পুনরুদ্ধার করার অনুমতি দেয় এবং এটি একটি স্থানীয় রেডিস ডাটাবেসে লিখতে দেয়। একটি সিঙ্ক্রোনাইজার ইনস্ট্যান্স চলার সাথে, বিভিন্ন নোডে চলমান অন্যান্য এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলি এই ডাটাবেস থেকে সরাসরি তাদের কনফিগারেশন পুনরুদ্ধার করতে পারে।

বর্তমানে Redis 5.0.x এর সাথে কাজ করার জন্য সিঙ্ক্রোনাইজার বৈশিষ্ট্যটি সমর্থিত।

সিনক্রোনাইজার কি?

সিঙ্ক্রোনাইজার এজ মাইক্রোগেটওয়ের জন্য একটি স্তরের স্থিতিস্থাপকতা প্রদান করে। এটি নিশ্চিত করতে সাহায্য করে যে এজ মাইক্রোগেটওয়ের প্রতিটি দৃষ্টান্ত একই কনফিগারেশন ব্যবহার করে এবং ইন্টারনেট ব্যাহত হওয়ার ক্ষেত্রে, এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলি সঠিকভাবে শুরু হতে পারে এবং চলতে পারে।

ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলি অবশ্যই তাদের কনফিগারেশন ডেটা যেমন API প্রক্সি এবং API পণ্য কনফিগারেশনগুলি পুনরুদ্ধার এবং রিফ্রেশ করতে Apigee Edge এর সাথে যোগাযোগ করতে সক্ষম হবে। যদি এজের সাথে ইন্টারনেট সংযোগ বিঘ্নিত হয়, মাইক্রোগেটওয়ে দৃষ্টান্তগুলি কাজ করা চালিয়ে যেতে পারে কারণ সর্বশেষ কনফিগারেশন ডেটা ক্যাশে করা হয়েছে। যাইহোক, নতুন মাইক্রোগেটওয়ে দৃষ্টান্তগুলি একটি স্পষ্ট সংযোগ ছাড়া শুরু করতে পারে না। তদুপরি, ইন্টারনেট ব্যাঘাতের ফলে এক বা একাধিক মাইক্রোগেটওয়ে দৃষ্টান্তগুলি কনফিগারেশন তথ্যের সাথে চলতে পারে যা অন্যান্য উদাহরণের সাথে সিঙ্কের বাইরে।

এজ মাইক্রোগেটওয়ে সিঙ্ক্রোনাইজার এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলির জন্য একটি বিকল্প ব্যবস্থা প্রদান করে কনফিগারেশন ডেটা পুনরুদ্ধার করার জন্য যা তাদের API প্রক্সি ট্র্যাফিক শুরু এবং প্রক্রিয়া করার জন্য প্রয়োজন। Apigee Edge-এ কল থেকে প্রাপ্ত কনফিগারেশন ডেটার মধ্যে রয়েছে: jwk_public_keys কল, jwt_public_key কল, বুটস্ট্র্যাপ কল এবং API পণ্য কল। সিঙ্ক্রোনাইজারটি বিভিন্ন নোডে চলমান সমস্ত এজ মাইক্রোগেটওয়ে দৃষ্টান্তগুলিকে সঠিকভাবে শুরু করা এবং এজ মাইক্রোগেটওয়ে এবং এপিজি এজের মধ্যে ইন্টারনেট সংযোগ বিঘ্নিত হলেও সিঙ্কে থাকা সম্ভব করে তোলে৷

সিঙ্ক্রোনাইজারটি এজ মাইক্রোগেটওয়ের একটি বিশেষভাবে কনফিগার করা উদাহরণ। এর একমাত্র উদ্দেশ্য হল Apigee Edge পোল করা (সময়টি কনফিগারযোগ্য), কনফিগারেশন ডেটা পুনরুদ্ধার করা এবং এটি একটি স্থানীয় রেডিস ডাটাবেসে লেখা। সিঙ্ক্রোনাইজার উদাহরণ নিজেই API প্রক্সি ট্র্যাফিক প্রক্রিয়া করতে পারে না। বিভিন্ন নোডে চলমান এজ মাইক্রোগেটওয়ের অন্যান্য উদাহরণগুলি Apigee এজ থেকে না হয়ে Redis ডাটাবেস থেকে কনফিগারেশন ডেটা পুনরুদ্ধার করতে কনফিগার করা যেতে পারে। যেহেতু সমস্ত মাইক্রোগেটওয়ে দৃষ্টান্ত স্থানীয় ডাটাবেস থেকে তাদের কনফিগারেশন ডেটা টেনে নেয়, তারা ইন্টারনেট ব্যাহত হওয়ার ক্ষেত্রেও API অনুরোধগুলি শুরু করতে এবং প্রক্রিয়া করতে পারে।

একটি সিঙ্ক্রোনাইজার উদাহরণ কনফিগার করা হচ্ছে

এজ মাইক্রোগেটওয়ে ইনস্টলেশনের জন্য 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 হোস্ট যেখানে আপনার Redis উদাহরণ চলছে। ডিফল্ট: 127.0.0.1
redisPort Redis উদাহরণের পোর্ট. ডিফল্ট: 6379
redisDb Redis DB ব্যবহার করতে হবে। ডিফল্ট: 0
redisPassword আপনার ডাটাবেস পাসওয়ার্ড.

অবশেষে, কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স শুরু করুন। এটি Apigee Edge পোলিং শুরু করবে এবং Redis ডাটাবেসে ডাউনলোড করা কনফিগারেশন ডেটা সংরক্ষণ করবে।

নিয়মিত এজ মাইক্রোগেটওয়ে দৃষ্টান্ত কনফিগার করা হচ্ছে

সিঙ্ক্রোনাইজার চলার সাথে, আপনি নিয়মিত মাইক্রোগেটওয়ে দৃষ্টান্তগুলি চালানোর জন্য অতিরিক্ত এজ মাইক্রোগেটওয়ে নোডগুলি কনফিগার করতে পারেন যা API প্রক্সি ট্র্যাফিক প্রক্রিয়া করে। যাইহোক, আপনি Apigee Edge থেকে না হয়ে Redis ডাটাবেস থেকে তাদের কনফিগারেশন ডেটা পেতে এই উদাহরণগুলি কনফিগার করেন।

প্রতিটি অতিরিক্ত এজ মাইক্রোগেটওয়ে নোডের org-env /config.yaml ফাইলে নিম্নলিখিত কনফিগারেশন যোগ করুন। মনে রাখবেন যে synchronizerMode প্রপার্টি 0 এ সেট করা আছে। এই বৈশিষ্ট্যটি একটি সাধারণ এজ মাইক্রোগেটওয়ে উদাহরণ হিসাবে কাজ করার জন্য দৃষ্টান্ত সেট করে যা API প্রক্সি ট্র্যাফিক প্রক্রিয়া করে এবং উদাহরণটি Redis ডাটাবেস থেকে এর কনফিগারেশন ডেটা প্রাপ্ত করবে।

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, একটি সিনক্রোনাইজার হিসাবে কাজ করার জন্য এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স শুরু করুন। এই মোডে, উদাহরণটি Apigee Edge থেকে কনফিগারেশন ডেটা টানবে এবং এটি একটি স্থানীয় রেডিস ডাটাবেসে সংরক্ষণ করবে। এই উদাহরণ API প্রক্সি অনুরোধ প্রক্রিয়া করতে সক্ষম নয়; এর একমাত্র উদ্দেশ্য হল কনফিগারেশন ডেটার জন্য Apigee Edge পোল করা এবং স্থানীয় ডাটাবেসে লেখা। ডাটাবেস থেকে পড়ার জন্য আপনাকে অবশ্যই অন্যান্য মাইক্রোগেটওয়ে দৃষ্টান্তগুলি কনফিগার করতে হবে।

edge_config.redisBasedConfigCache সত্য বা মিথ্যা সত্য হলে, এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স Apigee এজ থেকে পরিবর্তে Redis ডাটাবেস থেকে কনফিগারেশন ডেটা নিয়ে আসে। Redis ডাটাবেস একই হতে হবে যে সিঙ্ক্রোনাইজারটি লেখার জন্য কনফিগার করা হয়েছে। Redis ডাটাবেস অনুপলব্ধ হলে বা ডাটাবেস খালি থাকলে, মাইক্রোগেটওয়ে তার কনফিগারেশনের জন্য একটি বিদ্যমান cache-config.yaml ফাইল খোঁজে।

মিথ্যা হলে (ডিফল্ট), এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স যথারীতি Apigee এজ থেকে কনফিগারেশন ডেটা নিয়ে আসে।

edgemicro.config_change_poll_interval সময়ের ব্যবধান, সেকেন্ডে Apigee Edge থেকে ডেটা টানতে সিঙ্ক্রোনাইজারের জন্য ভোটদানের ব্যবধান নির্দিষ্ট করে।

প্লাগইনগুলির জন্য ইউআরএল বাদ দেওয়া কনফিগার করা হচ্ছে

নির্দিষ্ট URL-এর জন্য প্লাগইনগুলির প্রক্রিয়াকরণ এড়িয়ে যাওয়ার জন্য আপনি মাইক্রোগেটওয়ে কনফিগার করতে পারেন। আপনি বিশ্বব্যাপী (সমস্ত প্লাগইনগুলির জন্য) বা নির্দিষ্ট প্লাগইনগুলির জন্য এই "বাদ" URLগুলি কনফিগার করতে পারেন৷

যেমন:

...
edgemicro:
  ...
  plugins:
    excludeUrls: '/hello,/proxy_one' # global exclude urls
    sequence:
      - oauth
      - json2xml
      - quota
json2xml:
  excludeUrls: '/hello/xml'  # plugin level exclude urls
...

এই উদাহরণে, প্লাগইনগুলি /hello বা /proxy_one পাথ দিয়ে ইনকামিং API প্রক্সি কলগুলি প্রক্রিয়া করবে না। উপরন্তু, json2xml প্লাগইন তাদের পাথে /hello/xml সহ API-এর জন্য এড়িয়ে যাবে।

পরিবেশ পরিবর্তনশীল মান সহ কনফিগারেশন বৈশিষ্ট্য সেট করা

আপনি কনফিগারেশন ফাইলে ট্যাগ ব্যবহার করে পরিবেশ ভেরিয়েবল নির্দিষ্ট করতে পারেন। নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল ট্যাগগুলি প্রকৃত পরিবেশ পরিবর্তনশীল মান দ্বারা প্রতিস্থাপিত হয়। প্রতিস্থাপনগুলি শুধুমাত্র মেমরিতে সংরক্ষণ করা হয় এবং মূল কনফিগারেশন বা ক্যাশে ফাইলগুলিতে সংরক্ষণ করা হয় না।

এই উদাহরণে, অ্যাট্রিবিউট 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>