Edge Microgateway-এর অপারেশন ও কনফিগারেশন রেফারেন্স

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

Edge Microgateway v. 2.5.x

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

আপনার ইন্টারনেট কানেকশন থাকলে Edge Microgateway আপগ্রেড করা

  1. Edge Microgateway-এর লেটেস্ট ভার্সনে আপগ্রেড করতে, নিম্নলিখিত npm কমান্ডটি এক্সিকিউট করুন:
    npm upgrade edgemicro -g

    Edge Microgateway-এর নির্দিষ্ট কোনও ভার্সনে আপগ্রেড করতে, আপনাকে আপগ্রেড কমান্ডে ভার্সন নম্বর উল্লেখ করতে হবে। আপনি ভার্সন নম্বর উল্লেখ না করলে, লেটেস্ট ভার্সন ইনস্টল করা হবে। যেমন, 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

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

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

  • ডিফল্ট সিস্টেম কনফিগারেশন ফাইল
  • নতুনভাবে ইনিশিয়ালাইজ করা Edge Microgateway ইনস্ট্যান্সের জন্য ডিফল্ট কনফিগারেশন ফাইল
  • চলমান ইনস্ট্যান্সের জন্য ডায়নামিক কনফিগারেশন ফাইল

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

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

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

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

যেখানে prefix হল npm প্রিফিক্স ডিরেক্টরি। আপনি এই ডিরেক্টরি খুঁজে না পেলে, Edge Microgateway কোথায় ইনস্টল করা হয় দেখুন।

আপনি সিস্টেম কনফিগারেশন ফাইল পরিবর্তন করলে, আপনাকে অবশ্যই Edge Microgateway আবার ইনিশিয়ালাইজ, আবার কনফিগার ও রিস্টার্ট করতে হবে:

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

নতুন করে চালু করা Edge Microgateway ইনস্ট্যান্সের জন্য ডিফল্ট কনফিগারেশন ফাইল

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

~/.edgemicro-এ কনফিগারেশন ফাইল পরিবর্তন করলে, আপনাকে Edge Microgateway আবার কনফিগার করে রিস্টার্ট করতে হবে:

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

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

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

Edge Microgateway চালু থাকলে (জিরো-ডাউনটাইম বিকল্প):

  1. Edge Microgateway কনফিগারেশন আবার লোড করুন:
    edgemicro reload -o org_name -e env_name -k key -s secret

    যেখানে:

    • org_name হল আপনার Edge সংস্থার নাম (আপনাকে অবশ্যই একজন সংস্থা অ্যাডমিনিস্ট্রেটর হতে হবে)।
    • env_name হল আপনার সংস্থার একটি এনভায়রনমেন্ট (যেমন, "test" বা "prod")।
    • key হল সেই কী যা কনফিগার কমান্ডের মাধ্যমে আগে রিটার্ন করা হয়েছে।
    • secret হল সেই কী যা কনফিগার কমান্ডের মাধ্যমে আগে রিটার্ন করা হয়েছে।

    যেমন

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

Edge Microgateway বন্ধ করা থাকলে:

  1. Edge Microgateway রিস্টার্ট করুন:
    edgemicro start -o org_name -e env_name -k key -s secret

    যেখানে:

    • org_name হল আপনার Edge সংস্থার নাম (আপনাকে অবশ্যই একজন সংস্থা অ্যাডমিনিস্ট্রেটর হতে হবে)।
    • env_name হল আপনার সংস্থার একটি এনভায়রনমেন্ট (যেমন, "পরীক্ষা" বা "প্রোডাকশন")।
    • key হল সেই কী যা কনফিগার কমান্ডের মাধ্যমে আগে রিটার্ন করা হয়েছে।
    • secret হল সেই কী যা কনফিগার কমান্ডের মাধ্যমে আগে রিটার্ন করা হয়েছে।

    যেমন:

    edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \
      -s 05c1435...e34ab0cc824

এখানে কনফিগ ফাইলের একটি উদাহরণ দেওয়া হল। কনফিগারেশন ফাইল সেটিংস সম্পর্কে বিস্তারিত জানতে, Edge Microgateway কনফিগারেশন রেফারেন্স দেখুন।

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

এনভায়রনমেন্ট ভেরিয়েবল সেট করা

আপনার Edge সংস্থা ও এনভায়রনমেন্টের জন্য ভ্যালু প্রয়োজন এমন কমান্ড-লাইন ইন্টারফেস কমান্ড এবং Edge Microgateway শুরু করার জন্য প্রয়োজনীয় কী ও সিক্রেট এইসব এনভায়রনমেন্ট ভেরিয়েবলে স্টোর করা যেতে পারে:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

এইসব ভেরিয়েবল সেট করা ঐচ্ছিক। আপনি সেগুলি সেট করলে, Edge Microgateway কনফিগার ও চালু করার জন্য Command-Line Interface (CLI) ব্যবহার করার সময় আপনাকে তাদের ভ্যালু উল্লেখ করতে হবে না।

Edge Microgateway সার্ভারে SSL কনফিগার করা

আপনি SSL ব্যবহার করার জন্য Microgateway সার্ভার কনফিগার করতে পারবেন। যেমন, SSL কনফিগার করা থাকলে, আপনি Edge Microgateway-এর মাধ্যমে "https" প্রোটোকল দিয়ে API কল করতে পারবেন, যেমন:

https://localhost:8000/myapi

Microgateway সার্ভারে SSL কনফিগার করতে, এইসব ধাপ অনুসরণ করুন:

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

এখানে কনফিগার করা 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

কাজ করে এমন সব সার্ভার বিকল্পের তালিকা এখানে দেওয়া হল:

Option বিবরণ
key ca.key ফাইলের পাথ (PEM ফর্ম্যাটে)।
cert ca.cert ফাইলের পাথ (PEM ফর্ম্যাটে)।
pfx PFX ফর্ম্যাটে ক্লায়েন্টের প্রাইভেট কী, সার্টিফিকেট ও CA সার্টিফিকেট থাকা pfx ফাইলের পাথ।
passphrase প্রাইভেট কী বা PFX-এর জন্য পাসফ্রেজ সহ স্ট্রিং।
ca PEM ফর্ম্যাটে বিশ্বস্ত সার্টিফিকেটের তালিকা থাকা ফাইলের পাথ।
ciphers ":" দিয়ে আলাদা করা, ব্যবহার করার জন্য সাইফার বর্ণনা করে এমন একটি স্ট্রিং।
rejectUnauthorized True হলে, সাপ্লাই করা CA-এর তালিকার সাথে সার্ভার সার্টিফিকেট যাচাই করা হয়। যাচাইকরণ সফল না হলে, একটি সমস্যা দেখানো হয়।
secureProtocol ব্যবহার করার জন্য SSL পদ্ধতি। যেমন, SSLv3_method, SSL-কে ভার্সন ৩-এ বাধ্য করে।
servername SNI (সার্ভার নেম ইন্ডিকেশন) TLS এক্সটেনশনের জন্য সার্ভারের নাম।
requestCert ২-ওয়ে SSL-এর জন্য true; ১-ওয়ে SSL-এর জন্য false

ক্লায়েন্ট SSL/TLS বিকল্প ব্যবহার করা

টার্গেট এন্ডপয়েন্টে কানেক্ট করার সময় আপনি Edge Microgateway-কে TLS বা SSL ক্লায়েন্ট হিসেবে কনফিগার করতে পারবেন। Microgateway কনফিগারেশন ফাইলে, SSL/TLS বিকল্প সেট করতে targets এলিমেন্ট ব্যবহার করুন।

এই উদাহরণে এমন সেটিংস দেওয়া হয়েছে যা সব হোস্টের ক্ষেত্রে প্রযোজ্য হবে:

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

কাজ করে এমন সব ক্লায়েন্ট বিকল্পের তালিকা এখানে দেওয়া হল:

Option বিবরণ
pfx PFX ফর্ম্যাটে ক্লায়েন্টের প্রাইভেট কী, সার্টিফিকেট ও CA সার্টিফিকেট থাকা pfx ফাইলের পাথ।
key ca.key ফাইলের পাথ (PEM ফর্ম্যাটে)।
passphrase প্রাইভেট কী বা PFX-এর জন্য পাসফ্রেজ সহ স্ট্রিং।
cert ca.cert ফাইলের পাথ (PEM ফর্ম্যাটে)।
ca PEM ফর্ম্যাটে বিশ্বস্ত সার্টিফিকেটের তালিকা থাকা ফাইলের পাথ।
ciphers ":" দিয়ে আলাদা করা, ব্যবহার করার জন্য সাইফার বর্ণনা করে এমন একটি স্ট্রিং।
rejectUnauthorized True হলে, সাপ্লাই করা CA-এর তালিকার সাথে সার্ভার সার্টিফিকেট যাচাই করা হয়। যাচাইকরণ সফল না হলে, একটি সমস্যা দেখানো হয়।
secureProtocol ব্যবহার করার জন্য SSL পদ্ধতি। যেমন, SSLv3_method, SSL-কে ভার্সন ৩-এ বাধ্য করে।
servername SNI (সার্ভার নেম ইন্ডিকেশন) TLS এক্সটেনশনের জন্য সার্ভারের নাম।

edgemicro-auth প্রক্সি কাস্টমাইজ করা

ডিফল্ট হিসেবে, Edge Microgateway, OAuth2 যাচাইকরণের জন্য Apigee Edge-এ ডেপ্লয় করা প্রক্সি ব্যবহার করে। আপনি প্রথমবার edgemicro configure রান করানোর সময় এই প্রক্সি ডেপ্লয় করা হয়। আপনি JSON Web Token (JWT)-এ কাস্টম দাবি যোগ করার জন্য এই প্রক্সির ডিফল্ট কনফিগারেশন পরিবর্তন করতে পারেন , টোকেনের মেয়াদ শেষ হওয়ার সময় কনফিগার করতে এবং রিফ্রেশ টোকেন তৈরি করতে পারেন। বিস্তারিত জানতে, GitHub-এ edgemicro-auth পৃষ্ঠা দেখুন।

কাস্টম অথেন্টিকেশন পরিষেবা ব্যবহার করা

ডিফল্ট হিসেবে, Edge Microgateway, OAuth2 যাচাইকরণের জন্য Apigee Edge-এ ডেপ্লয় করা প্রক্সি ব্যবহার করে। আপনি প্রথমবার edgemicro configure রান করানোর সময় এই প্রক্সি ডেপ্লয় করা হয়। ডিফল্ট হিসেবে, এই প্রক্সির URL Edge Microgateway কনফিগারেশন ফাইলে নিম্নলিখিতভাবে উল্লেখ করা হয়:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

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

লগ ফাইল ম্যানেজ করা

Edge Microgateway প্রতিটি অনুরোধ ও উত্তর সংক্রান্ত তথ্য লগ করে। ডিবাগিং ও সমস্যার সমাধান করার জন্য লগ ফাইল সহায়ক তথ্য প্রদান করে।

লগ ফাইল কোথায় সেভ করা থাকে

ডিফল্ট হিসেবে, লগ ফাইল /var/tmp-এ স্টোর করা হয়।

ডিফল্ট লগ ফাইল ডিরেক্টরি কীভাবে পরিবর্তন করতে হয়

Edge Microgateway কনফিগারেশন ফাইলে লগ ফাইল যেখানে স্টোর করা হয় সেই ডিরেক্টরি নির্দিষ্ট করা থাকে। এছাড়াও কনফিগারেশনে পরিবর্তন করা দেখুন।

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 এবং লগ ফাইল, এই দু'টি জায়গাতেই লগ পাঠাতে পারবেন না।

লগিং লেভেল কীভাবে সেট করতে হয়

আপনি এইসব লগ লেভেল সেট করতে পারবেন: তথ্য, সতর্কতা এবং সমস্যা। তথ্যের লেভেল সাজেস্ট করা হয়। এটি সব এপিআই অনুরোধ ও উত্তর লগ করে, এবং এটি ডিফল্ট হিসেবে সেট করা থাকে।

লগ ইন্টারভ্যাল কীভাবে পরিবর্তন করতে হয়

আপনি Edge Microgateway কনফিগারেশন ফাইলে এই ইন্টারভ্যাল কনফিগার করতে পারবেন। এছাড়াও কনফিগারেশনে পরিবর্তন করা দেখুন।

কনফিগার করা যায় এমন অ্যাট্রিবিউটগুলি হল:

  • stats_log_interval: (default: 60) Interval, in seconds, when the stats record is written to the API log file.
  • rotate_interval: (default: 24) Interval, in hours, when log files are rotated. যেমন:
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 সাজেস্ট করে যে আপনি নিম্নলিখিত প্র্যাক্টিস গ্রহণ করুন:

  • লগ ফাইল অনেক বড় হতে পারে, তাই লগ ফাইল ডিরেক্টরিতে যথেষ্ট জায়গা আছে কিনা তা নিশ্চিত করুন। নিম্নলিখিত বিভাগগুলি দেখুন লগ ফাইল কোথায় স্টোর করা হয় এবং ডিফল্ট লগ ফাইল ডিরেক্টরি কীভাবে পরিবর্তন করতে হয়।
  • অন্তত সপ্তাহে একবার লগ ফাইল মুছে দিন বা আলাদা আর্কাইভ ডিরেক্টরিতে সরিয়ে দিন।
  • আপনার নীতি অনুযায়ী লগ মুছে দিতে চাইলে, পুরনো লগ সরিয়ে (পরিষ্কার করতে) আপনি CLI কমান্ড edgemicro log -c ব্যবহার করতে পারেন।

লগ ফাইলের নামকরণ সংক্রান্ত নিয়মাবলী

Edge Microgateway-এর প্রতিটি ইনস্ট্যান্স তিন ধরনের লগ ফাইল তৈরি করে:

  • api - Edge Microgateway-এর মাধ্যমে আসা সমস্ত অনুরোধ ও উত্তর লগ করে। এছাড়াও, API কাউন্টার (পরিসংখ্যান) এবং সমস্যা এই ফাইলে লগ করা হয়।
  • err - stderr-এ পাঠানো যেকোনও কিছু লগ করে।
  • out - stdout-এ পাঠানো যেকোনও কিছু লগ করে।

নামকরণ সংক্রান্ত নিয়মাবলী:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

যেমন:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

লগ ফাইলের কন্টেন্ট সম্পর্কে

এতে যোগ করা হয়েছে: v2.3.3

সাধারণত, লগিং পরিষেবা ডাউনলোড করা প্রক্সি, প্রোডাক্ট এবং JSON ওয়েব টোকেনের (JWT) JSON বাদ দেয়। আপনি যদি এই অবজেক্টগুলি লগ ফাইলে আউটপুট করতে চান, তাহলে Edge Microgateway শুরু করার সময় DEBUG=* সেট করুন। যেমন:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

"api" লগ ফাইলের কন্টেন্ট

"api" লগ ফাইলে Edge Microgateway-এর মাধ্যমে অনুরোধ ও উত্তরের ফ্লো সম্পর্কে বিস্তারিত তথ্য থাকে। "api" লগ ফাইলের নাম এই ধরনের হয়:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Microgateway-তে করা প্রতিটি অনুরোধের জন্য, "api" লগ ফাইলে চারটি ইভেন্ট ক্যাপচার করা হয়:

  • ক্লায়েন্টের থেকে পাওয়া অনুরোধ
  • টার্গেটে করা আউটগোয়িং অনুরোধ
  • টার্গেট থেকে পাওয়া ইনকামিং উত্তর
  • ক্লায়েন্টকে পাঠানো উত্তর

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

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

আসুন, এক এক করে সেগুলি দেখে নেওয়া যাক:

১. ক্লায়েন্টের থেকে পাওয়া অনুরোধের নমুনা:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Unix তারিখ স্ট্যাম্প
  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে, তথ্য, সতর্কতা বা সমস্যা হতে পারে, । কোনও পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা সমস্যার জন্য সমস্যা হতে পারে।
  • req - ইভেন্ট শনাক্ত করে। এই ক্ষেত্রে, ক্লায়েন্টের অনুরোধ।
  • m - অনুরোধে ব্যবহৃত HTTP ক্রিয়া।
  • u - বেসপাথের পরে URL-এর অংশ।
  • h - Edge Microgateway যে হোস্ট ও পোর্ট নম্বরে শুনছে।
  • r - ক্লায়েন্টের অনুরোধ যে রিমোট হোস্ট ও পোর্ট থেকে এসেছে।
  • i - অনুরোধের আইডি। এই আইডিটি চারটি ইভেন্ট এন্ট্রি শেয়ার করবে। প্রতিটি অনুরোধকে একটি অনন্য অনুরোধ আইডি অ্যাসাইন করা হয়। অনুরোধ আইডি অনুসারে লগ রেকর্ড কোরিলেট করলে, টার্গেটের লেটেন্সি সম্পর্কে মূল্যবান ইনসাইট পাওয়া যায়।
  • d - Edge Microgateway-এর কাছে অনুরোধ পাওয়ার পর থেকে মিলিসেকেন্ডে সময়সীমা। উপরের উদাহরণে, অনুরোধ ০-এর জন্য টার্গেটের উত্তর ৭ মিলিসেকেন্ড পরে (৩ নম্বর লাইন) পাওয়া গেছে এবং আরও ৪ মিলিসেকেন্ড পরে (৪ নম্বর লাইন) উত্তরটি ক্লায়েন্টকে পাঠানো হয়েছে। অন্যভাবে বলতে গেলে, মোট অনুরোধ লেটেন্সি ছিল ১১ মিলিসেকেন্ড, যার মধ্যে টার্গেট ৭ মিলিসেকেন্ড এবং Edge Microgateway নিজে ৪ মিলিসেকেন্ড সময় নিয়েছে।

২. টার্গেটে পাঠানো অনুরোধের নমুনা:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix তারিখ স্ট্যাম্প
  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে, তথ্য, সতর্কতা বা সমস্যা হতে পারে, । কোনও পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা সমস্যার জন্য সমস্যা হতে পারে।
  • treq - ইভেন্ট শনাক্ত করে। এই ক্ষেত্রে, টার্গেট করা অনুরোধ।
  • m - টার্গেট অনুরোধে ব্যবহৃত HTTP ক্রিয়া।
  • u - বেসপাথের পরে URL-এর অংশ।
  • h - ব্যাকএন্ড টার্গেটের হোস্ট ও পোর্ট নম্বর।
  • i - লগ এন্ট্রির আইডি। এই চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।

৩. টার্গেট থেকে পাওয়া ইনকামিং উত্তরের নমুনা

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

1436403888651 - Unix তারিখ স্ট্যাম্প

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

৪. ক্লায়েন্টকে পাঠানো উত্তরের নমুনা

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

1436403888651 - Unix তারিখ স্ট্যাম্প

  • তথ্য - প্রসঙ্গের উপর নির্ভর করে। লগ লেভেলের উপর নির্ভর করে, তথ্য, সতর্কতা বা সমস্যা হতে পারে, । কোনও পরিসংখ্যান রেকর্ডের জন্য পরিসংখ্যান, সতর্কতার জন্য সতর্কতা বা সমস্যার জন্য সমস্যা হতে পারে।
  • res - ইভেন্ট শনাক্ত করে। এই ক্ষেত্রে, ক্লায়েন্টকে উত্তর দাও।
  • s - HTTP রেসপন্স স্ট্যাটাস।
  • d - মিলিসেকেন্ডে সময়সীমা। এটি হল API কলের মাধ্যমে নেওয়া মোট সময় যার মধ্যে টার্গেট API-এর নেওয়া সময় এবং Edge Microgateway-এর নেওয়া সময় অন্তর্ভুক্ত।
  • i - লগ এন্ট্রির আইডি। এই চারটি ইভেন্ট এন্ট্রি এই আইডি শেয়ার করবে।

লগ ফাইল শিডিউল

rotate_interval কনফিগারেশন অ্যাট্রিবিউট দ্বারা নির্দিষ্ট করা ইন্টারভ্যালে লগ ফাইলগুলি রোটেট করা হয়। রোটেট করার ইন্টারভ্যালের মেয়াদ শেষ না হওয়া পর্যন্ত একই লগ ফাইলে এন্ট্রি যোগ করা হতে থাকবে। তবে, Edge Microgateway যতবার রিস্টার্ট করা হয়, ততবার এটি একটি নতুন UID পায় এবং এই UID সহ লগ ফাইলের একটি নতুন সেট তৈরি করে। এছাড়াও দেখুন লগ ফাইল রক্ষণাবেক্ষণের ভালো প্র্যাকটিস।

সমস্যার মেসেজ

কিছু লগ এন্ট্রি সমস্যার মেসেজ দেখাবে। কোথায় এবং কেন সমস্যা হচ্ছে তা শনাক্ত করতে সাহায্য পেতে, Edge Microgateway সংক্রান্ত সমস্যা রেফারেন্স দেখুন।

Edge Microgateway কনফিগারেশন রেফারেন্স

কনফিগারেশন ফাইলের লোকেশন

এই বিভাগে বর্ণিত কনফিগারেশন অ্যাট্রিবিউটগুলি Edge Microgateway কনফিগারেশন ফাইলে থাকে। এছাড়াও কনফিগারেশনে পরিবর্তন করা দেখুন।

edge_config অ্যাট্রিবিউট

Edge Microgateway ইনস্ট্যান্স এবং Apigee Edge-এর মধ্যে ইন্টার‍্যাকশন কনফিগার করতে এইসব সেটিংস ব্যবহার করা হয়।

  • bootstrap: (default: none) A URL that points to an Edge Microgateway-specific service running on Apigee Edge. Edge Microgateway এই পরিষেবা ব্যবহার করে Apigee Edge-এর সাথে যোগাযোগ করে। আপনি পাবলিক/প্রাইভেট কী পেয়ার জেনারেট করার কমান্ড এক্সিকিউট করলে এই URL রিটার্ন করা হয়: edgemicro genkeys. আরও বিবরণের জন্য Edge Microgateway সেট-আপ ও কনফিগার করা দেখুন।
  • jwt_public_key: (default: none) A URL that points to the Edge Microgateway proxy that is deployed on Apigee Edge. এই প্রক্সি ক্লায়েন্টদের সাইন করা অ্যাক্সেস টোকেন ইস্যু করার জন্য প্রমাণীকরণ এন্ডপয়েন্ট হিসেবে কাজ করে। প্রক্সি ডেপ্লয় করার জন্য কমান্ড এক্সিকিউট করলে এই URL রিটার্ন করা হয়: edgemicro configure. আরও বিবরণের জন্য Edge Microgateway সেট-আপ ও কনফিগার করা দেখুন।

edgemicro অ্যাট্রিবিউট

এইসব সেটিংস Edge Microgateway প্রসেস কনফিগার করে।

  • পোর্ট: (ডিফল্ট: 8000) Edge Microgateway প্রসেস যে পোর্ট নম্বরে শোনে।
  • max_connections: (default: -1) Specifies the maximum number of simultaneous incoming connections that Edge Microgateway can receive. এই সংখ্যাটি অতিক্রম করলে, নিম্নলিখিত স্ট্যাটাস রিটার্ন করা হয়:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (default: -1) The maximum number of simultaneous requests that Edge Microgateway can receive before shutting down the connection. এই সেটিং পরিষেবা-প্রত্যাখ্যানের অ্যাটাক প্রতিহত করার উদ্দেশ্যে করা হয়েছে। সাধারণত, এটিকে max_connections-এর থেকে বড় কোনও সংখ্যায় সেট করুন।
  • লগিং:
    • লেভেল: (ডিফল্ট: সমস্যা)
      • info - Edge Microgateway ইনস্ট্যান্সের মাধ্যমে আসা সমস্ত অনুরোধ ও উত্তর লগ করে।
      • warn - শুধুমাত্র সতর্কতামূলক মেসেজ লগ করে।
      • সমস্যা - শুধুমাত্র সমস্যার মেসেজ লগ করে।
    • dir: (default: /var/tmp) The directory where log files are stored.
    • stats_log_interval: (default: 60) Interval, in seconds, when the stats record is written to the api log file.
    • rotate_interval: (default: 24) লগ ফাইল রোটেট করার সময়, ঘণ্টার হিসেবে ইন্টার্ভাল।
  • dir: ./gateway ডিরেক্টরি থেকে ./plugins ডিরেক্টরি পর্যন্ত রিলেটিভ পাথ অথবা অ্যাবসোলিউট পাথ।
  • ক্রম: আপনার Edge Microgateway ইনস্ট্যান্সে যোগ করার জন্য প্লাগ-ইন মডিউলের তালিকা। মডিউলগুলি এখানে যেভাবে নির্দিষ্ট করা হয়েছে সেই ক্রমে এক্সিকিউট হবে।
  • debug: Edge Microgateway প্রসেসে রিমোট ডিবাগিং যোগ করে।
    • port: যে পোর্ট নম্বরে শোনা হবে। যেমন, এই পোর্টে শোনার জন্য আপনার IDE ডিবাগার সেট করুন।
    • args: ডিবাগ প্রসেসের আর্গুমেন্ট। যেমন: args --nolazy
  • config_change_poll_interval: (default: 600 seconds) Edge Microgateway একটি নতুন কনফিগারেশন নির্দিষ্ট সময় অন্তর লোড করে এবং কিছু পরিবর্তন হলে রিলোড করে। পোলিং Edge-এ করা যেকোনও পরিবর্তন (প্রোডাক্ট, মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি ইত্যাদির পরিবর্তন) এবং লোকাল কনফিগারেশন ফাইলে করা পরিবর্তনগুলিও সংগ্রহ করে।
  • disable_config_poll_interval: (default: false) অটোমেটিক পরিবর্তন পোলিং বন্ধ করতে true হিসেবে সেট করুন।
  • request_timeout: টার্গেট সংক্রান্ত অনুরোধের জন্য টাইমআউট সেট করে। টাইমআউট সেকেন্ডে সেট করা হয়। টাইম-আউট হয়ে গেলে, Edge Microgateway 504 স্ট্যাটাস কোড সহ উত্তর দেয়। (যোগ করা হয়েছে v2.4.x)

হেডার অ্যাট্রিবিউট

এইসব সেটিংস নির্দিষ্ট HTTP হেডার কীভাবে ব্যবহার করা হবে তা কনফিগার করে।

  • x-forwarded-for: (default: true) Set to false to prevent x-forwarded-for headers to be passed to the target. মনে রাখবেন, অনুরোধে x-forwarded-for হেডার থাকলে, Edge Analytics-এ এর ভ্যালু client-ip ভ্যালুতে সেট করা হবে।
  • x-forwarded-host: (default: true) Set to false to prevent x-forwarded-host headers to be passed to the target.
  • x-request-id: (default: true) Set to false to prevent x-request-id headers to be passed to the target.
  • x-response-time: (default: true) Set to false to prevent x-response-time headers to be passed to the target.
  • via: (default: true) Set to false to prevent via headers to be passed to the target.

OAuth অ্যাট্রিবিউট

এইসব সেটিংস Edge Microgateway-এর মাধ্যমে ক্লায়েন্ট যাচাইকরণ কীভাবে প্রয়োগ করা হয় তা কনফিগার করে।

  • allowNoAuthorization: (default: false) এটি true হিসেবে সেট করা থাকলে, API কলগুলিকে Edge Microgateway-এর মাধ্যমে কোনও যাচাইকরণ হেডার ছাড়াই পাস করার অনুমতি দেওয়া হয়। অনুমোদন হেডার (ডিফল্ট) প্রয়োজন হলে এটি false হিসেবে সেট করুন।
  • allowInvalidAuthorization: (default: false) If set to true, API calls are allowed to pass if the token passed in the Authorization header is invalid or expired. সঠিক টোকেন (ডিফল্ট) প্রয়োজন হলে এটি false হিসেবে সেট করুন।
  • authorization-header: (default: Authorization: Bearer) The header used to send the access token to Edge Microgateway. আপনি হয়ত ডিফল্ট পরিবর্তন করতে চাইবেন, যদি টার্গেটকে অন্য কোনও উদ্দেশ্যে অনুমোদন হেডার ব্যবহার করতে হয়।
  • api-key-header: (default: x-api-key) The name of the header or query parameter used to pass an API key to Edge Microgateway. এছাড়াও API key ব্যবহার করা দেখুন।
  • keep-authorization-header: (default: false) If set to true, the Authorization header sent in the request is passed on to the target (it is preserved).
  • allowOAuthOnly -- এটি true হিসেবে সেট করা থাকলে, প্রতিটি API-তে অবশ্যই Bearer Access Token সহ একটি Authorization হেডার থাকতে হবে। আপনাকে শুধুমাত্র OAuth সুরক্ষা মডেলের অনুমতি দিতে দেয় (ব্যাকওয়ার্ড কম্প্যাটিবিলিটি বজায় রেখে)। (2.4.x ভার্সনে যোগ করা হয়েছে)
  • allowAPIKeyOnly -- true হিসেবে সেট করা থাকলে, প্রতিটি API-তে API কী সহ x-api-key হেডার (বা কাস্টম লোকেশন) থাকতে হবে। এটি আপনাকে শুধুমাত্র API কী নিরাপত্তা মডেলকে অনুমতি দিতে দেয় (ব্যাকওয়ার্ড কম্প্যাটিবিলিটি বজায় রেখে)। (Added 2.4.x)
  • gracePeriod -- এই প্যারামিটারটি আপনার সিস্টেম ক্লক এবং JWT অনুমোদনের টোকেনে উল্লেখ করা Not Before (nbf) বা Issued At (iat) সময়ের মধ্যে সামান্য অমিলের কারণে হওয়া সমস্যা প্রতিরোধ করতে সাহায্য করে। এই ধরনের পার্থক্য এড়ানোর জন্য এই প্যারামিটারকে সেকেন্ডের সংখ্যায় সেট করুন। (2.5.7 ভার্সনে যোগ করা হয়েছে)

প্লাগ-ইন নির্দিষ্ট অ্যাট্রিবিউট

প্রতিটি প্লাগ-ইনের কনফিগার করা যায় এমন অ্যাট্রিবিউট সম্পর্কে বিস্তারিত জানতে, 'প্লাগ-ইন ব্যবহার করা' দেখুন।

প্রক্সি ফিল্টার করা

Edge Microgateway ইনস্ট্যান্স কোন কোন মাইক্রোগেটওয়ে-সচেতন প্রক্সি প্রসেস করবে তা আপনি ফিল্টার করতে পারবেন। Edge Microgateway চালু হলে, এটি সেই সংস্থার সাথে যুক্ত সংস্থায় থাকা মাইক্রোগেটওয়ে-সচেতন সব প্রক্সি ডাউনলোড করে। মাইক্রোগেটওয়ে কোন কোন প্রক্সি প্রসেস করবে তা সীমিত করতে নিম্নলিখিত কনফিগারেশন ব্যবহার করুন। যেমন, এই কনফিগারেশন মাইক্রোগেটওয়ে প্রসেস করবে এমন প্রক্সি তিনটিতে সীমাবদ্ধ করে: edgemicro_proxy-1, edgemicro_proxy-2, এবং edgemicro_proxy-3:

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

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

Edge Microgateway, Apigee-তে কত ঘন ঘন অ্যানালিটিক্স ডেটা পাঠাবে তা নিয়ন্ত্রণ করতে এইসব কনফিগারেশন প্যারামিটার ব্যবহার করুন:

  • bufferSize (ঐচ্ছিক): সবচেয়ে পুরনো রেকর্ড বাদ দেওয়া শুরু করার আগে বাফার সর্বাধিক যতগুলি অ্যানালিটিক্স রেকর্ড ধরে রাখতে পারে। ডিফল্ট: ১০০০০
  • batchSize (ঐচ্ছিক): Apigee-তে পাঠানো অ্যানালিটিক্স রেকর্ডের ব্যাচের সর্বাধিক সাইজ। ডিফল্ট: ৫০০
  • flushInterval (ঐচ্ছিক): Apigee-তে পাঠানো অ্যানালিটিক্স রেকর্ডের প্রতিটি ব্যাচ ফ্ল্যাশ করার মধ্যে মিলিসেকেন্ডের সংখ্যা। ডিফল্ট: ৫০০০

যেমন:

analytics:
  bufferSize: 15000
  batchSize: 1000
  flushInterval: 6000

অ্যানালিটিক্স ডেটা মাস্ক করা

নিম্নলিখিত কনফিগারেশন Edge Analytics-এ অনুরোধ পাথ সংক্রান্ত তথ্য দেখাতে বাধা দেয়। অনুরোধ URI এবং/অথবা অনুরোধ পাথ মাস্ক করতে, মাইক্রোগেটওয়ে কনফিগারেশনে নিম্নলিখিতগুলি যোগ করুন। মনে রাখবেন, URI-তে অনুরোধের হোস্টনেম ও পাথ অংশ থাকে।

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Edge Analytics-এ API কল আলাদা করা

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

edgemicro_proxyname-health

নিচের ছবিতে Analytics ড্যাশবোর্ডে দুটি আলাদা করা প্রক্সি দেখানো হয়েছে: edgemicro_hello-health এবং edgemicro_mock-health:

Analytics ড্যাশবোর্ডে আলাদা আলাদা প্রক্সি হিসেবে আপেক্ষিক ও পরম পাথ আলাদা করতে, এইসব প্যারামিটার ব্যবহার করুন:

  • relativePath (ঐচ্ছিক): Analytics ড্যাশবোর্ডে আলাদা করার জন্য একটি আপেক্ষিক পাথ নির্দিষ্ট করে। যেমন, আপনি যদি /healthcheck নির্দিষ্ট করেন, তাহলে পাথ /healthcheck থাকা সমস্ত API কল ড্যাশবোর্ডে edgemicro_proxyname-health হিসেবে দেখানো হবে। মনে রাখবেন, এই ফ্ল্যাগটি প্রক্সি বেসপাথ উপেক্ষা করে। বেসপাথ সহ সম্পূর্ণ পাথের উপর ভিত্তি করে আলাদা করতে, proxyPath ফ্ল্যাগ ব্যবহার করুন।
  • proxyPath (ঐচ্ছিক): অ্যানালিটিক্স ড্যাশবোর্ডে আলাদা আলাদা করে দেখানোর জন্য, প্রক্সি বেসপাথ সহ সম্পূর্ণ API প্রক্সি পাথ নির্দিষ্ট করে। যেমন, আপনি যদি /mocktarget/healthcheck, নির্দিষ্ট করেন, যেখানে /mocktarget হল প্রক্সি বেসপাথ, তাহলে /mocktarget/healthcheck পাথ সহ সব API কল ড্যাশবোর্ডে edgemicro_proxyname-health হিসেবে দেখা যাবে।

যেমন, নিম্নলিখিত কনফিগারেশনে, /healthcheck থাকা যেকোনও API পাথকে অ্যানালিটিক্স প্লাগ-ইন আলাদা করবে। এর অর্থ হল, /foo/healthcheck এবং /foo/bar/healthcheck দুটি আলাদা প্রক্সি হিসেবে Analytics ড্যাশবোর্ডে 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

কোনও কোম্পানির ফায়ারওয়ালের পিছনে Edge Microgateway সেট-আপ করা

কাজ করে এমন v2.4.x

ফায়ারওয়ালের পিছনে Edge Microgateway ইনস্টল করা থাকলে, গেটওয়েটি Apigee Edge-এর সাথে যোগাযোগ করতে নাও পারে। এই ক্ষেত্রে, আপনি দুটি বিকল্প বিবেচনা করতে পারেন:

বিকল্প ১:

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

edge_config:

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

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

বিকল্প ২:

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

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

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

আপনি NO_PROXY-কে ডোমেনের কমা-বিচ্ছিন্ন তালিকা হিসেবে সেট করতে পারেন, Edge Microgateway-কে প্রক্সি করা উচিত নয়। যেমন:

export NO_PROXY='localhost,localhost:8080'

HTTP প্রক্সিতে HTTP_PROXY ও HTTPS_PROXY সেট করুন Edge Microgateway এটিতে মেসেজ পাঠাতে পারবে। যেমন:

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

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

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

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

Apigee কমিউনিটিতে, কোম্পানির ফায়ারওয়ালের পিছনে Edge Microgateway কীভাবে সেট-আপ করবেন।

Microgateway-সচেতন প্রক্সিতে ওয়াইল্ডকার্ড ব্যবহার করা

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

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

JWT কী রোটেট করা

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

Edge Microgateway কীভাবে JWT ব্যবহার করে

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

Edge Microgateway, OAuth নিরাপত্তার জন্য JWT-কে বিয়ারার টোকেন হিসেবে ব্যবহার করে। Edge Microgateway-এর জন্য OAuth টোকেন জেনারেট করলে, আপনি JWT ফেরত পাবেন। আপনি তারপরে API কলের অনুমোদন হেডার JWT ব্যবহার করতে পারবেন। যেমন:

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

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

আপনি edgemicro token কমান্ড বা API ব্যবহার করে Edge Microgateway-এর জন্য 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 হল আপনার Edge প্রতিষ্ঠানের নাম (আপনাকে অবশ্যই একজন প্রতিষ্ঠান অ্যাডমিনিস্ট্রেটর হতে হবে)।
  • env হল আপনার সংস্থার একটি এনভায়রনমেন্ট (যেমন, "test" বা "prod")।
  • client_id হল আপনার আগে তৈরি করা ডেভেলপার অ্যাপের গ্রাহক আইডি।
  • client_secret হল আপনার আগে তৈরি করা ডেভেলপার অ্যাপের কনজিউমার সিক্রেট ।

কী রোটেশন কী?

আপনি JWT তৈরি করার পরে, Edge এনক্রিপ্টেড KVM-এ সেভ করা পাবলিক/প্রাইভেট কী পেয়ার আপনাকে পরিবর্তন করতে হতে পারে। নতুন কী পেয়ার তৈরি করার এই প্রসেসকে কী রোটেশন বলা হয়। আপনি কী রোটেট করলে, নতুন প্রাইভেট/পাবলিক কী পেয়ার তৈরি হয় এবং আপনার Apigee Edge সংস্থা/এনভায়রনমেন্টে "মাইক্রোগেটওয়ে" KVM-এ স্টোর করা হয়। এছাড়াও, পুরনো পাবলিক কী তার আসল কী আইডি ভ্যালু সহ রেখে দেওয়া হয়।

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

KVM কীগুলির মধ্যে এগুলি অন্তর্ভুক্ত:

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

  • public_key - JWT যাচাই করার জন্য ব্যবহৃত লেটেস্ট (সবচেয়ে সম্প্রতি তৈরি করা) সার্টিফিকেট যা private_key দিয়ে সাইন করা হয়েছে।

  • private_key_kid - লেটেস্ট (সবচেয়ে সম্প্রতি তৈরি করা) ব্যক্তিগত কী আইডি। এই কী আইডি private_key ভ্যালুর সাথে যুক্ত এবং কী রোটেশনকে সহায়তা করার জন্য ব্যবহার করা হয়।

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

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

আপনি কী রোটেশন পারফর্ম করলে, ম্যাপে আগে থেকে থাকা কী ভ্যালুগুলি পরিবর্তন করা হয় এবং পুরনো সর্বজনীন কীগুলি ধরে রাখার জন্য নতুন কী যোগ করা হয়। যেমন:

  • public_key2_kid - পুরনো পাবলিক কী আইডি। এই কীটি public_key2 ভ্যালুর সাথে যুক্ত এবং কী রোটেশনকে সাপোর্ট করার জন্য ব্যবহার করা হয়।

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

যাচাইকরণের জন্য জমা দেওয়া JWT নতুন পাবলিক কী ব্যবহার করে যাচাই করা হবে। যাচাইকরণ ব্যর্থ হলে, পুরনো পাবলিক কী ব্যবহার করা হবে, যতক্ষণ না সেটির মেয়াদ শেষ হয়ে যায় (৩০ মিনিট পরে)। এই ভাবে, আপনি API ট্রাফিক অবিলম্বে ব্যাহত না করেই কী "রোটেট" করতে পারবেন।

কীভাবে কী রোটেট করতে হয়

কীভাবে কী রোটেশন করতে হয় তা এই বিভাগে ব্যাখ্যা করা হয়েছে।

আপনি যদি 2.5.2 ভার্সনের আগে Edge Microgateway ইনস্ট্যান্স কনফিগার করে থাকেন

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

upgradekvm -o org -e env -u username

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

পরের কমান্ডটি edgemicro-oauth প্রক্সি আপগ্রেড করে যা Edge Microgateway কনফিগার করার সময় আপনার 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 প্যারামিটার একটি কী আইডি (kid) নির্দিষ্ট করে। নির্দিষ্ট কী ম্যাচ করানোর জন্য এই আইডি ব্যবহার করা হয়। কী রোটেট করার সময়, Edge Microgateway কীয়ের একটি সেট থেকে বেছে নেওয়ার জন্য এই ভ্যালু ব্যবহার করে। আরও তথ্যের জন্য, JSON ওয়েব কী স্পেসিফিকেশনের ৪.৫ ধারা দেখুন।

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

ডাউনলোড করা প্রক্সি ফিল্টার করা

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

  1. আপনার Edge Micro কনফিগারেশন ফাইল খুলুন: ~/.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 ভার্সন অনুযায়ী, Edge Microgateway এই প্রোডাক্ট কনফিগারেশন সমর্থন করে।

ডিবাগিং ও সমস্যার সমাধান করা

ডিবাগার কানেক্ট করা

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

  1. ডিবাগ মোডে Edge Microgateway রিস্টার্ট করুন। এটি করতে, start কমান্ডের শুরুতে DEBUG=* যোগ করুন। যেমন:
    DEBUG=* edgemicro start -o  myorg -e test -k
          db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s
          6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
    ব্যবহার করুন
  2. আপনার ডিবাগার চালু করুন এবং ডিবাগিং প্রসেসের জন্য পোর্ট নম্বরে শোনার জন্য সেট করুন।
  3. আপনি এখন Edge Microgateway কোড ধাপে ধাপে দেখতে, ব্রেকপয়েন্ট সেট করতে, এক্সপ্রেশন দেখতে এবং আরও অনেক কিছু করতে পারবেন।

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

লগ ফাইল চেক করা

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

API key-এর নিরাপত্তা ব্যবহার করা

API কী, Edge Microgateway-তে অনুরোধ করা ক্লায়েন্টদের যাচাই করার জন্য একটি সহজ পদ্ধতি প্রদান করে। Edge Microgateway যাচাইকরণ প্রক্সি অন্তর্ভুক্ত করে এমন Apigee Edge প্রোডাক্ট থেকে Consumer Key (এটি ক্লায়েন্ট আইডি নামেও পরিচিত) ভ্যালু কপি করে আপনি API কী পেতে পারেন।

কী ক্যাশে করা

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

API key ব্যবহার করা

আপনি 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 কীয়ের নাম কনফিগার করা

ডিফল্ট হিসেবে, API কী হেডার ও কোয়েরি প্যারামিটার, দুটির ক্ষেত্রেই x-api-key নাম ব্যবহার করা হয়। কনফিগারেশনে পরিবর্তন করা নিবন্ধে ব্যাখ্যা করা হয়েছে, আপনি কনফিগারেশন ফাইলে এই ডিফল্ট পরিবর্তন করতে পারবেন। যেমন, নাম পরিবর্তন করে apiKey করতে:

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

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

যেমন:

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

প্রক্সি অনুরোধের সাথে API কী ব্যবহার করা সম্পর্কে আরও তথ্য পেতে, Secure Edge Microgateway দেখুন।

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

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

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

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

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

API 1

URL-এ আপনার সংস্থা ও এনভায়রনমেন্টের নাম লিখুন এবং Apigee Edge-এ ডেভেলপার অ্যাপ থেকে পাওয়া কনজিউমার আইডি ও কনজিউমার সিক্রেট ভ্যালু client_id ও client_secret বডি প্যারামিটারের জায়গায় লিখুন:

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 ফর্ম প্যারামিটার হিসেবে পাঠান। এই কমান্ড ফর্মটি RFC 6749: OAuth 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"

আউটপুটের নমুনা

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

সর্বদা মনিটর করা

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

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

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

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

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

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

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

যেমন:

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

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

TCP কানেকশন ডেটা বাফারিং বন্ধ করা

Edge Microgateway-এর ব্যবহার করা TCP কানেকশনের জন্য ডেটা বাফারিং বন্ধ করতে আপনি nodelay কনফিগারেশন অ্যাট্রিবিউট ব্যবহার করতে পারবেন।

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

nodelay চালু করতে, Edge Micro কনফিগারেশন ফাইল নিম্নলিখিতভাবে এডিট করুন:

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

স্ট্যান্ডঅ্যালোন মোডে Edge Microgateway চালানো

আপনি যেকোনও Apigee Edge নির্ভরতা থেকে সম্পূর্ণ ডিসকানেক্ট করা Edge Microgateway চালাতে পারবেন। এই পরিস্থিতিকে স্ট্যান্ডঅ্যালোন মোড বলা হয়, এটি আপনাকে ইন্টারনেট কানেকশন ছাড়াই Edge Microgateway রান ও টেস্ট করতে দেয়।

স্ট্যান্ডঅলোন মোডে, নিম্নলিখিত ফিচার কাজ করে না, কারণ এগুলির জন্য Apigee Edge-এর সাথে কানেকশন প্রয়োজন:

  • OAuth ও API key
  • কোটা
  • Analytics

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

গেটওয়ে কনফিগার ও চালু করা

স্ট্যান্ডঅ্যালোন মোডে Edge Microgateway রান করাতে:

  1. Edge Microgateway ভার্সন 2.5.25 বা তার পরবর্তী যেকোনও ভার্সন ইনস্টল করা আছে কিনা তা নিশ্চিত করুন। তা না হলে, লেটেস্ট ভার্সনে আপগ্রেড করতে আপনাকে অবশ্যই নিম্নলিখিত কমান্ড চালাতে হবে:
    npm install -g edgemicro

    আপনার সাহায্যের প্রয়োজন হলে, Edge Microgateway ইনস্টল করা দেখুন।

  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. "১" ভ্যালু সহ নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল এক্সপোর্ট করুন:
    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 হল "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 /
  6. কনফিগারেশন পরীক্ষা করুন।
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

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

যেমন: অনুমোদন টোকেন পাওয়া

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

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

  1. Apigee Edge-এ আপনার সংস্থা/এনভায়রনমেন্টে edgemicro-authপ্রক্সি ডেপ্লয় করতে, আপনাকে Edge Microgateway-এর স্ট্যান্ডার্ড সেট-আপ ও কনফিগারেশন করতে হবে। আপনি আগে এই ধাপটি সম্পূর্ণ করে থাকলে, আপনাকে এটি আবার করতে হবে না।
  2. আপনি যদি Apigee Cloud-এ Edge Microgateway ডেপ্লয় করে থাকেন, তাহলে আপনাকে অবশ্যই ইন্টারনেটের সাথে কানেক্ট করতে হবে যাতে আপনি এই এন্ডপয়েন্ট থেকে JWT পেতে পারেন।
  3. Edge Microgateway বন্ধ করুন:
    edgemicro stop
  4. আপনি আগে যে কনফিগারেশন ফাইল তৈরি করেছেন ($HOME/.edgemicro/org-env-config.yaml), সেখানে extauth:publickey_url অ্যাট্রিবিউটকে আপনার Apigee Edge সংস্থা/এনভায়রনমেন্টের edgemicro-auth/jwkPublicKeys এন্ডপয়েন্টে পয়েন্ট করুন। যেমন:
    extauth:
      publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
  5. আপনি আগে যেভাবে Edge Microgateway রিস্টার্ট করেছিলেন, সেইভাবে কনফিগারেশন ফাইলের নামে ব্যবহৃত 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 ব্যবহার করে Edge Microgateway-এর জন্য 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 কল যাচাই করতে ব্যবহার করা যেতে পারে।

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

স্ট্যান্ডঅলোন কনফিগারেশন পরীক্ষা করা

কনফিগারেশন পরীক্ষা করতে, নিম্নলিখিত পদ্ধতিতে Authorization হেডারে টোকেন যোগ করে 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":""
}

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

লোকাল প্রক্সি মোডে, Edge Microgateway-এর Apigee Edge-এ মাইক্রোগেটওয়ে-অ্যাওয়ার প্রক্সি ডেপ্লয় করার প্রয়োজন নেই। এর পরিবর্তে, আপনি মাইক্রোগেটওয়ে চালু করার সময় একটি লোকাল প্রক্সি নাম, বেসপাথ ও টার্গেট URL প্রদান করে একটি "লোকাল প্রক্সি" কনফিগার করেন। মাইক্রোগেটওয়েতে করা এপিআই কলগুলি তারপরে লোকাল প্রক্সির টার্গেট URL-এ পাঠানো হয়। অন্যান্য সব দিক থেকে, লোকাল প্রক্সি মোড ঠিক সেইভাবেই কাজ করে যেভাবে Edge Microgateway সাধারণ মোডে চলে। যাচাইকরণ একই পদ্ধতিতে কাজ করে, সেইসাথে স্পাইক অ্যারেস্ট ও কোটা এনফোর্সমেন্ট, কাস্টম প্লাগ-ইন ইত্যাদিও একই পদ্ধতিতে কাজ করে।

ব্যবহারের ক্ষেত্র ও উদাহরণ

Edge Microgateway ইনস্ট্যান্সের সাথে শুধুমাত্র একটি প্রক্সি অ্যাসোসিয়েট করার প্রয়োজন হলে, লোকাল প্রক্সি মোড কাজে লাগে। যেমন, আপনি Kubernetes-এ Edge Microgateway ইনজেক্ট করতে পারেন। এটি সাইডকার প্রক্সি হিসেবে কাজ করে। এখানে, একটি মাইক্রোগেটওয়ে ও একটি পরিষেবা, দু'টিই একটি পডে রান করে এবং মাইক্রোগেটওয়ে, এর কম্প্যানিয়ন পরিষেবায় আসা ও সেখান থেকে যাওয়া ট্রাফিক ম্যানেজ করে। নিচের ছবিতে এই আর্কিটেকচার দেখানো হয়েছে, যেখানে Kubernetes ক্লাস্টারে Edge Microgateway একটি সাইডকার প্রক্সি হিসেবে কাজ করে। প্রতিটি মাইক্রোগেটওয়ে ইনস্ট্যান্স শুধুমাত্র এর কম্প্যানিয়ন পরিষেবার একটি এন্ডপয়েন্টের সাথে কথা বলে:

Sidecar হিসেবে Edgemicro

এই ধরনের আর্কিটেকচারের একটি সুবিধা হল, Edge Microgateway, কন্টেনার এনভায়রনমেন্টে ডেপ্লয় করা স্বতন্ত্র পরিষেবার জন্য API ম্যানেজমেন্ট প্রদান করে, যেমন Kubernetes ক্লাস্টার।

লোকাল প্রক্সি মোড কনফিগার করা

লোকাল প্রক্সি মোডে চালানোর জন্য Edge Microgateway কনফিগার করতে, এইসব ধাপ অনুসরণ করুন:

  1. Edge Microgateway ভার্সন 2.5.25 বা তার পরবর্তী যেকোনও ভার্সন ইনস্টল করা আছে কিনা তা নিশ্চিত করুন। তা না হলে, লেটেস্ট ভার্সনে আপগ্রেড করতে আপনাকে অবশ্যই নিম্নলিখিত কমান্ড চালাতে হবে:
    npm install -g edgemicro

    আপনার সাহায্যের প্রয়োজন হলে, Edge Microgateway ইনস্টল করা দেখুন।

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

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

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

  6. Apigee Edge-এ, ডেভেলপার অ্যাপ তৈরি করুন। আপনি যে API প্রোডাক্ট এইমাত্র তৈরি করেছেন সেটি অ্যাপে অবশ্যই যোগ করতে হবে। সাহায্যের জন্য, Edge ম্যানেজমেন্ট UI-তে অ্যাপ রেজিস্টার করা দেখুন।
  7. যে মেশিনে Edge Microgateway ইনস্টল করা আছে, সেখানে নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল "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 হল আপনার 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 কলে সমস্যা হয়েছে। আপনি আগে তৈরি করা ডেভেলপার অ্যাপে কী খুঁজে পেতে পারেন। Edge UI-তে অ্যাপটি খুলুন, Consumer Key কপি করুন এবং সেই কীটি নিম্নলিখিতভাবে ব্যবহার করুন:

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