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

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

এজ মাইক্রোগেটওয়ে v. 2.5.x

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

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

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

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

    npm upgrade edgemicro@2.5.26 -g
  2. সংস্করণ নম্বর পরীক্ষা করুন. উদাহরণস্বরূপ, যদি আপনি সংস্করণ 2.5.26 ইনস্টল করেন:
    edgemicro --version
    current nodejs version is v8.9.0
    current edgemicro version is 2.5.26
        
  3. অবশেষে, edgemicro-auth প্রক্সির সর্বশেষ সংস্করণে আপগ্রেড করুন:
    edgemicro upgradeauth -o org_name -e env_name -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_name -e env_name -k key -s secret

    কোথায়:

    • org_name হল আপনার এজ প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠানের প্রশাসক হতে হবে)।
    • env_name হল আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন "পরীক্ষা" বা "প্রোড")।
    • key হল সেই কী যা পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া হয়েছিল।
    • secret হল সেই কী যা পূর্বে কনফিগার কমান্ড দ্বারা ফেরত দেওয়া হয়েছিল।

    যেমন

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \
      -s 05c14356e42ed1...4e34ab0cc824

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

  1. এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন:
    edgemicro start -o org_name -e env_name -k key -s secret

    কোথায়:

    • org_name হল আপনার এজ প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠানের প্রশাসক হতে হবে)।
    • env_name হল আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন "পরীক্ষা" বা "প্রোড")।
    • 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 কনফিগার করা হচ্ছে

আপনি 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 । বিস্তারিত জানার জন্য এজ মাইক্রোগেটওয়ে সেট আপ এবং কনফিগার করা দেখুন।

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 যোগ করা হয়েছে)

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

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

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

অ্যানালিটিক্স পুশ ফ্রিকোয়েন্সি কনফিগার করা হচ্ছে

এজ মাইক্রোগেটওয়ে 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

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

সমর্থিত v2.4.x

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

বিকল্প 1:

প্রথম বিকল্পটি হল edgemicro: proxy_tunnel অপশনটিকে মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে সত্যে সেট করা:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

যখন proxy_tunnel সত্য হয়, তখন এজ মাইক্রোগেটওয়ে একটি একক TCP সংযোগের মাধ্যমে HTTP অনুরোধগুলিকে টানেল করতে HTTP CONNECT পদ্ধতি ব্যবহার করে। (প্রক্সি কনফিগার করার জন্য এনভায়রনমেন্ট ভেরিয়েবল TLS সক্ষম হলে একই কথা)।

বিকল্প 2:

দ্বিতীয় বিকল্পটি হল একটি প্রক্সি নির্দিষ্ট করা এবং প্রক্সি_টানেলকে মাইক্রোগেটওয়ে কনফিগারেশন ফাইলে মিথ্যাতে সেট করা। যেমন:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

এই ক্ষেত্রে, আপনি ব্যবহার করতে চান এমন প্রতিটি HTTP প্রক্সির জন্য হোস্টগুলি নিয়ন্ত্রণ করতে আপনি নিম্নলিখিত ভেরিয়েবলগুলি সেট করতে পারেন, বা কোন হোস্টগুলি এজ মাইক্রোগেটওয়ে প্রক্সিগুলি পরিচালনা করবে না: HTTP_PROXY , HTTPS_PROXY , এবং NO_PROXY

আপনি NO_PROXY কে কমা সীমাবদ্ধ ডোমেনের তালিকা হিসাবে সেট করতে পারেন যা এজ মাইক্রোগেটওয়ের প্রক্সি করা উচিত নয়৷ যেমন:

export NO_PROXY='localhost,localhost:8080'

HTTP_PROXY এবং HTTPS_PROXY সেট করুন HTTP প্রক্সি এন্ডপয়েন্ট এজ মাইক্রোগেটওয়ে এটিতে বার্তা পাঠাতে পারে। যেমন:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

এই ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য, https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables দেখুন

এছাড়াও দেখুন

অ্যাপিজি কমিউনিটিতে কোম্পানির ফায়ারওয়ালের পিছনে এজ মাইক্রোগেটওয়ে কীভাবে সেট আপ করবেন

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

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

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

ঘোরানো JWT কী

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

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

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

Edge Microgateway OAuth নিরাপত্তার জন্য বাহক টোকেন হিসাবে JWTs ব্যবহার করে। আপনি যখন এজ মাইক্রোগেটওয়ের জন্য একটি OAuth টোকেন তৈরি করেন, তখন আপনি একটি JWT ফেরত পাবেন। তারপরে আপনি API কলের অনুমোদন শিরোনামে JWT ব্যবহার করতে পারেন। যেমন:

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

একটি নতুন JWT তৈরি করা হচ্ছে

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

edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

এই কমান্ডটি Apigee Edge কে একটি JWT তৈরি করতে বলে যা পরে API কলগুলি যাচাই করতে ব্যবহার করা যেতে পারে। -i এবং -s পরামিতিগুলি হল আপনার Apigee Edge সংস্থার একটি বিকাশকারী অ্যাপের গ্রাহক আইডি এবং গোপন মান।

অথবা, আপনি ব্যবস্থাপনা API ব্যবহার করে একটি JWT তৈরি করতে পারেন:

curl -i -X POST "http://org-env.apigee.net/edgemicro-auth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "your consumer key",
    "client_secret": "your consumer secret",
    "grant_type": "client_credentials"
  }'

কোথায়:

  • org হল আপনার এজ প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠান প্রশাসক হতে হবে)।
  • env হল আপনার প্রতিষ্ঠানের একটি পরিবেশ (যেমন "পরীক্ষা" বা "প্রোড")।
  • আপনার আগে তৈরি করা ডেভেলপার অ্যাপের গ্রাহক আইডি হল client_id
  • client_secret হল আপনার আগে তৈরি করা ডেভেলপার অ্যাপের কনজিউমার সিক্রেট।

কী ঘূর্ণন কি?

আপনি প্রাথমিকভাবে একটি 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 নতুন পাবলিক কী ব্যবহার করে যাচাই করা হবে। যাচাইকরণ ব্যর্থ হলে, পুরানো সর্বজনীন কী ব্যবহার করা হবে, যতক্ষণ না এটি মেয়াদ শেষ হয় (30 মিনিটের পরে)। এইভাবে, আপনি অবিলম্বে API ট্র্যাফিক ব্যাহত না করে কীগুলি "ঘোরাতে" পারেন৷

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

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

আপনি যদি সংস্করণ 2.5.2 এর আগে আপনার এজ মাইক্রোগেটওয়ে ইনস্ট্যান্স কনফিগার করেন

আপনি যদি সংস্করণ 2.5.2 এর আগে আপনার Edge Microgateway ইন্সট্যান্স কনফিগার করে থাকেন, তাহলে KVM এবং প্রমাণীকরণ নীতি আপগ্রেড করতে আপনাকে অবশ্যই নিম্নলিখিত দুটি কমান্ড চালাতে হবে:

upgradekvm -o org -e env -u username

এই কমান্ড সম্পর্কে আরও তথ্যের জন্য, KVM আপগ্রেড করা দেখুন।

পরবর্তী কমান্ডটি edgemicro-oauth প্রক্সি আপগ্রেড করে যা আপনার Apigee org এ স্থাপন করা হয়েছিল যখন আপনি এজ মাইক্রোগেটওয়ে কনফিগার করেছিলেন। এই প্রক্সি টোকেন তৈরি করতে প্রয়োজনীয় পরিষেবা প্রদান করে।

upgradeauth -o org -e env -u username

এই কমান্ড সম্পর্কে আরও তথ্যের জন্য, edgemicro-auth প্রক্সি আপগ্রেড করা দেখুন।

চাবি ঘোরানো

আপনার ~/.edgemicro/org-env-config.yaml ফাইলে নিম্নলিখিত লাইনটি যোগ করুন, যেখানে আপনাকে অবশ্যই একই সংস্থা এবং পরিবেশ উল্লেখ করতে হবে যা আপনি ব্যবহার করার জন্য মাইক্রোগেটওয়ে কনফিগার করেছেন:

jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'

কীগুলি ঘোরানোর জন্য কী ঘূর্ণন কমান্ডটি চালান। (এই কমান্ড সম্পর্কে আরও তথ্যের জন্য, ঘূর্ণন কীগুলি দেখুন।)

edgemicro rotatekey -o org -e env -u username -k kid_value

যেমন:

edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2
current nodejs version is v6.9.1
current edgemicro version is 2.5.7
password:
Checking if private key exists in the KVM...
Checking for certificate...
Found Certificate
Generating New key/cert pair...
Extract new public key
Key Rotation successfully completed!

-k প্যারামিটার একটি কী আইডি (কিড) নির্দিষ্ট করে। এই আইডিটি একটি নির্দিষ্ট কী মেলানোর জন্য ব্যবহার করা হয়। এজ মাইক্রোগেটওয়ে কী রোটেশনের সময় কীগুলির একটি সেটের মধ্যে বেছে নিতে এই মানটি ব্যবহার করে। আরও তথ্যের জন্য, JSON ওয়েব কী স্পেসিফিকেশনের বিভাগ 4.5 দেখুন।

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

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

ডিফল্টরূপে, এজ মাইক্রোগেটওয়ে আপনার এজ প্রতিষ্ঠানের সমস্ত প্রক্সি ডাউনলোড করে যা "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  myorg -e test -k
          db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s
          6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
  2. আপনার ডিবাগার শুরু করুন এবং ডিবাগিং প্রক্রিয়ার জন্য পোর্ট নম্বরে শুনতে এটি সেট করুন।
  3. আপনি এখন এজ মাইক্রোগেটওয়ে কোডের মধ্য দিয়ে যেতে পারেন, ব্রেকপয়েন্ট সেট করতে পারেন, এক্সপ্রেশন দেখতে পারেন এবং আরও অনেক কিছু করতে পারেন।

আপনি ডিবাগ মোড সম্পর্কিত স্ট্যান্ডার্ড Node.js পতাকা নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, --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"

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

OAuth2 টোকেন সুরক্ষা ব্যবহার করে

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

কীভাবে অ্যাক্সেস টোকেন পাবেন

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

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

API 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"

API 2

(V2.5.31 এ যুক্ত) ক্লায়েন্টের শংসাপত্রগুলি একটি বেসিক প্রমাণীকরণ শিরোনাম হিসাবে এবং ফর্ম প্যারামিটার হিসাবে 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 বৈশিষ্ট্যগুলির মধ্যে কোনও পার্থক্য নেই। আপনি যেকোনো একটি ব্যবহার করতে পারেন।
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": "108000"
}

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

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

  1. /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"
    }'

    এপিআই একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন দেয়। প্রতিক্রিয়া এটির মতো দেখাচ্ছে:

    {
        "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. আপনি এখন একই এপিআইয়ের /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"
        }

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

চিরকালের জন্য একটি নোড.জেএস সরঞ্জাম যা প্রক্রিয়াটি নীচে চলে যাওয়ার ক্ষেত্রে বা কোনও ত্রুটি থাকলে স্বয়ংক্রিয়ভাবে একটি নোড.জেএস অ্যাপ্লিকেশন পুনরায় চালু করে। এজ মাইক্রোগেটওয়ের চিরকাল রয়েছে J জসন ফাইল যা আপনি কতবার এবং কোন অন্তরগুলির সাথে মাইক্রোগেটওয়ে পুনরায় চালু করা উচিত তা নিয়ন্ত্রণ করতে কনফিগার করতে পারেন। এই ফাইলটি চিরকালের জন্য একটি চিরকাল পরিষেবা কনফিগার করে যা চিরকালের জন্য প্রোগ্রামভাবে পরিচালনা করে।

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

edgemicro forever কমান্ডে এমন পতাকা অন্তর্ভুক্ত রয়েছে যা আপনাকে forever.json -f অবস্থান নির্দিষ্ট করতে দেয় -a যেমন:

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

আরও তথ্যের জন্য, সিএলআই রেফারেন্সে চিরকাল পর্যবেক্ষণ দেখুন।

একটি কনফিগার ফাইল শেষ পয়েন্ট নির্দিষ্ট করা

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

যেমন:

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 নামে একটি নতুন প্লাগইন আপনাকে স্ট্যান্ডেলোন মোডে থাকাকালীন জেডব্লিউটি সহ মাইক্রোগেটওয়েতে এপিআই কলগুলি অনুমোদিত করতে দেয়।

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

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

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

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

  2. নিম্নরূপ হিসাবে একটি কনফিগারেশন ফাইল তৈরি করুন: $HOME/.edgemicro/ org_name - env_name -config.yaml

    যেমন:

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

    কোথায়:

    • your_org হ'ল "org" নাম যা আপনি কনফিগারেশন ফাইলের নামটিতে ব্যবহার করেছেন।
    • your_environment হ'ল "এনভ" নাম যা আপনি কনফিগারেশন ফাইলের নামটিতে ব্যবহার করেছেন।
    • 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 /
  6. কনফিগারেশন পরীক্ষা করুন।
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

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

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

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

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

  1. এপিজি এজে আপনার সংস্থা/পরিবেশে edgemicro-auth প্রক্সিটি স্থাপনের জন্য আপনাকে অবশ্যই এজ মাইক্রোগেটওয়ের একটি স্ট্যান্ডার্ড সেটআপ এবং কনফিগারেশন সম্পাদন করতে হবে। আপনি যদি আগে এই পদক্ষেপটি করেন তবে আপনার এটির পুনরাবৃত্তি করার দরকার নেই।
  2. আপনি যদি এপিজি ক্লাউডে এজ মাইক্রোগেটওয়ে স্থাপন করেন তবে আপনাকে অবশ্যই ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে যাতে আপনি এই শেষ পয়েন্ট থেকে একটি জেডাব্লুটি পেতে পারেন।
  3. এজ মাইক্রোগেটওয়ে বন্ধ করুন:
    edgemicro stop
  4. আপনি পূর্বে তৈরি কনফিগারেশন ফাইলটিতে ( $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'
  5. আপনি কনফিগার ফাইলের নামটিতে ব্যবহৃত org/ENV নামগুলি ব্যবহার করে আপনি আগে যেমন করেছিলেন তেমন এজ মাইক্রোগেটওয়ে পুনরায় চালু করুন। যেমন:
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. অনুমোদনের শেষ পয়েন্ট থেকে একটি জেডব্লিউটি টোকেন পান। যেহেতু আপনি 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":""
}

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

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

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

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

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

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

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

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

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

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

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

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

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

  6. অ্যাপিগি প্রান্তে, একটি বিকাশকারী অ্যাপ্লিকেশন তৈরি করুন। আপনি অবশ্যই অ্যাপটিতে তৈরি করা এপিআই পণ্য যুক্ত করতে হবে। সাহায্যের জন্য, এজ ম্যানেজমেন্ট ইউআই -তে একটি অ্যাপ্লিকেশন নিবন্ধকরণ দেখুন।
  7. যে মেশিনে এজ মাইক্রোগেটওয়ে ইনস্টল করা আছে সেখানে "1" মান সহ নিম্নলিখিত পরিবেশের পরিবর্তনশীলটি রফতানি করুন।
    export EDGEMICRO_LOCAL_PROXY=1
  8. নিম্নলিখিত 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":""
}