مرجع التشغيل والضبط لطريق Edge Microgateway

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

Edge Microgateway الإصدار 3.3.x

يناقش هذا الموضوع كيفية إدارة بوابة Edge Microgateway وتهيئتها.

ترقية Edge Microgateway إذا كان لديك اتصال بالإنترنت

يوضح هذا القسم كيفية ترقية التثبيت الحالي لـ Edge Microgateway. وإذا كنت تعمل بدون اتصال بالإنترنت، فراجع هل يمكنني تثبيت Edge Microgateway بدون الاتصال بالإنترنت؟

تنصحك Apigee باختبار الإعدادات الحالية باستخدام على الإصدار الجديد قبل ترقية بيئة الإنتاج.

  1. نفِّذ أمر npm التالي للترقية إلى أحدث إصدار من Edge مدخل مصغّر:
    npm upgrade edgemicro -g

    لتثبيت إصدار معين من Edge Microgateway، يلزمك تحديد الإصدار العدد في أمر التثبيت. على سبيل المثال، للتثبيت إلى الإصدار 3.2.3، استخدم الأمر التالي:

    npm install edgemicro@3.2.3 -g
  2. تحقَّق من رقم الإصدار. على سبيل المثال، في حال تثبيت الإصدار 3.2.3:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.2.3
        
  3. أخيرًا، عليك الترقية إلى أحدث إصدار من الخادم الوكيل edgemicro-auth:
    edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME

إجراء تغييرات على الإعدادات

تتضمن ملفات التهيئة التي تحتاج إلى معرفتها ما يلي:

  • ملف إعداد النظام التلقائي
  • ملف الإعداد التلقائي لمثيل Edge Microgateway الذي تم إعداده حديثًا
  • ملف الإعداد الديناميكي لمثيلات التشغيل

يناقش هذا القسم هذه الملفات وما تحتاج إلى معرفته حول تغييرها.

ضبط النظام التلقائي الملف

عند تثبيت Edge Microgateway، يتم وضع ملف تهيئة نظام افتراضي هنا:

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

حيث prefix هو دليل البادئة npm. عرض أين تم تثبيت Edge Microgateway إذا لم تتمكّن من تحديد موقع هذا الدليل.

في حال تغيير ملف إعدادات النظام، يجب إعادة إعداد شبكة Edge وإعادة ضبطها ثم إعادة تشغيلها. مدخل مصغّر:

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 -e $ENV -k $KEY -s $SECRET

    المكان:

    • $ORG هو اسم مؤسستك على Edge (يجب أن تكون مؤسسة المشرف).
    • $ENV عبارة عن بيئة في مؤسستك (مثل "test" أو "إنتاج").
    • $KEY هو المفتاح الذي يعرضه أمر الضبط في السابق.
    • $SECRET هو المفتاح الذي يعرضه أمر الضبط في السابق.

    على سبيل المثال:

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

في حال إيقاف بوابة Edge Microgateway:

  1. أعد تشغيل Edge Microgateway:
    edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    المكان:

    • $ORG هو اسم مؤسستك على Edge (يجب أن تكون مؤسسة المشرف).
    • $ENV هي بيئة في مؤسستك (مثل "اختبار" أو "إنتاج").
    • $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

إن تعيين هذه المتغيرات أمر اختياري. إذا عيّنتها، لن تضطر إلى تحديد قيمها عند استخدام واجهة سطر الأوامر (CLI) لتهيئة بوابة Edge المصغَّرة وبدء تشغيلها.

تكوين طبقة المقابس الآمنة (SSL) على بوابة Edge الصغيرة خادم

شاهِد الفيديوهات التالية للتعرّف على كيفية ضبط بروتوكول أمان طبقة النقل (TLS) في Apigee Edge Microgateway:

فيديو الوصف
ضبط طبقة النقل الآمنة باتجاه واحد باتجاه الشمال تعرَّف على كيفية إعداد بروتوكول أمان طبقة النقل (TLS) في بوابة Microgateway في Apigee Edge. يتناول هذا الفيديو نظرة عامة على بروتوكول أمان طبقة النقل (TLS) وأهميته، ويتناول بروتوكول أمان طبقة النقل (TLS) في Edge Microgateway، ويوضح كيفية تهيئة بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه في الشمال.
ضبط بروتوكول أمان طبقة النقل (TLS) باتجاه الشمال هذا هو الفيديو الثاني حول تهيئة بروتوكول أمان طبقة النقل (TLS) في Apigee Edge Microgateway. هذا النمط فيديو يوضح كيفية تهيئة بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه باتجاه الشمال.
إعداد بروتوكول أمان طبقة النقل (TLS) باتجاه واحد واتجاهين في اتجاه الجنوب يشرح هذا الفيديو الثالث حول ضبط بروتوكول أمان طبقة النقل (TLS) في Apigee Edge Microgateway كيفية ضبط بروتوكول أمان طبقة النقل (TLS) باتجاه واحد وثنائي الاتجاه باتجاه الجنوب.

يمكنك تهيئة خادم Microgateway لاستخدام طبقة المقابس الآمنة (SSL). على سبيل المثال، عند تهيئة طبقة المقابس الآمنة، يمكنك يمكننا استدعاء واجهات برمجة التطبيقات من خلال Edge Microgateway باستخدام البادئة "https" مثل هذا:

https://localhost:8000/myapi

لتهيئة طبقة المقابس الآمنة (SSL) على خادم Microgateway، اتبع الخطوات التالية:

  1. أنشئ أو احصل على شهادة ومفتاح طبقة المقابس الآمنة (SSL) باستخدام الأداة المساعدة openssl أو الطريقة التي تفضّلها.
  2. أضِف السمة edgemicro:ssl إلى ملف إعداد Edge Microgateway. للحصول على قائمة بالخيارات، يُرجى الاطّلاع على الجدول أدناه. مثال:
    edgemicro:
      ssl:
       key: <absolute path to the SSL key file>
       cert: <absolute path to the SSL cert file>
       passphrase: admin123 #option added in v2.2.2
       rejectUnauthorized: true #option added in v2.2.2
       requestCert: true
  3. أعِد تشغيل Edge Microgateway. اتبع الخطوات الموضحة في يمكن أن يؤدي إجراء تغييرات على الضبط إلى ملف الإعداد الذي عدَّلته: الملف التلقائي أو ملف إعداد بيئة التشغيل.

في ما يلي مثال على القسم 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، سيتم التحقّق من شهادة الخادم وفقًا لقائمة مراجع التصديق المُقدّمة. في حال حذف فشل التحقق، سيتم إرجاع خطأ.
secureProtocol طريقة طبقة المقابس الآمنة (SSL) المستخدمة. على سبيل المثال، SSLv3_method لفرض طبقة المقابس الآمنة (SSL) على الإصدار 3.
servername اسم الخادم لإضافة بروتوكول أمان طبقة النقل (SNI) (إشارة اسم الخادم)
requestCert صحيح بالنسبة إلى طبقة المقابس الآمنة الثنائية الاتجاه؛ خطأ في طبقة المقابس الآمنة الأحادية الاتجاه

استخدام خيارات طبقة المقابس الآمنة/بروتوكول أمان طبقة النقل (TLS) الخاصة بالعميل

يمكنك تهيئة Edge Microgateway ليكون عميل بروتوكول أمان طبقة النقل (TLS) أو طبقة المقابس الآمنة (SSL) عند الاتصال للاستهداف والنقاط النهائية. في ملف إعداد Microgateway، استخدم عنصر الأهداف لضبط طبقة المقابس الآمنة/بروتوكول أمان طبقة النقل (TLS) الخيارات. تجدر الإشارة إلى أنّه يمكنك تحديد عدّة أهداف معيّنة. تم تضمين مثال متعدد الأهداف أدناه.

يوفّر هذا المثال الإعدادات التي سيتم تطبيقها على جميع المضيفين:

edgemicro:
...
targets:
  ssl:
    client:
      key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
      cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
      passphrase: admin123
      rejectUnauthorized: true

في هذا المثال، يتم تطبيق الإعدادات على المضيف المحدّد فقط:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    ssl:
      client:
        key: /Users/myname/twowayssl/ssl/client.key
        cert: /Users/myname/twowayssl/ssl/ca.crt
        passphrase: admin123
        rejectUnauthorized: true

في ما يلي مثال على بروتوكول أمان طبقة النقل (TLS):

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    tls:
      client:
        pfx: /Users/myname/twowayssl/ssl/client.pfx
        passphrase: admin123
        rejectUnauthorized: true

إذا أردت تطبيق إعدادات TLS/SSL على أهداف محددة متعددة، يجب عليك تحديد المضيف الأول في التهيئة على أنه "فارغ"، مما يتيح الطلبات العامة، ثم يحدد عناوين المضيفين بأي ترتيب. في هذا المثال، يتم تطبيق الإعدادات على عدة مضيفات محددة:

targets:
 - host:   ## Note that this value must be "empty"
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true
 - host: 'myserver1.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       rejectUnauthorized: true
 - host: 'myserver2.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       rejectUnauthorized: true

في ما يلي قائمة بجميع خيارات البرامج المتوافقة:

Option الوصف
pfx مسار إلى ملف pfx يحتوي على المفتاح الخاص والشهادة وشهادات هيئة إصدار الشهادات (CA) العميل بتنسيق PFX.
key المسار إلى ملف ca.key (بتنسيق PEM).
passphrase سلسلة تحتوي على عبارة المرور للمفتاح الخاص أو PFX.
cert المسار إلى ملف ca.cert (بتنسيق PEM).
ca مسار إلى ملف يحتوي على قائمة بالشهادات الموثوق بها بتنسيق PEM.
ciphers سلسلة تصف الرموز المراد استخدامها مفصولة بـ ":".
rejectUnauthorized إذا كانت القيمة هي true، سيتم التحقّق من شهادة الخادم وفقًا لقائمة مراجع التصديق المُقدّمة. في حال حذف فشل التحقق، سيتم إرجاع خطأ.
secureProtocol طريقة طبقة المقابس الآمنة (SSL) المستخدمة. على سبيل المثال، SSLv3_method لفرض طبقة المقابس الآمنة (SSL) على الإصدار 3.
servername اسم الخادم لإضافة بروتوكول أمان طبقة النقل (SNI) (إشارة اسم الخادم)

تخصيص الخادم الوكيل لمصادقة Edgemicro

بشكل تلقائي، تستخدم Edge Microgateway خادمًا وكيلاً تم نشره على Apigee Edge لمصادقة OAuth2. يتم تفعيل هذا الخادم الوكيل عند تشغيل edgemicro configure في البداية. يمكنك تغيير الإعدادات التلقائية لهذا الخادم الوكيل لإضافة دعم للمطالبات المخصّصة إلى رمز JSON المميّز للويب (JWT)، وضبط تاريخ انتهاء صلاحية الرمز المميز، وإنشاء رموز مميزة للتحديث. لمعرفة التفاصيل، يُرجى الاطّلاع على صفحة edgemicro-auth في GitHub.

استخدام خدمة مصادقة مخصصة

بشكل تلقائي، تستخدم Edge Microgateway خادمًا وكيلاً تم نشره على Apigee Edge لمصادقة OAuth2. يتم تفعيل هذا الخادم الوكيل عند تشغيل edgemicro configure في البداية. بشكل افتراضي، يتم تحديد عنوان URL للخادم الوكيل في ملف تهيئة Edge Microgateway على النحو التالي:

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

إذا كنت تريد استخدام الخدمة المخصصة التابعة لك لمعالجة المصادقة، يمكنك تغيير authUri في ملف الإعداد للتوجيه إلى خدمتك. على سبيل المثال، قد يكون لديك خدمة تستخدم بروتوكول النفاذ إلى الدليل البسيط لإثبات الهوية.

إدارة ملفات السجلّ

يسجل 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 وإلى ملف السجل.

كيفية ضبط مستوى التسجيل

حدِّد مستوى السجلّ لاستخدامه في إعدادات edgemicro. بالنسبة إلى القائمة الكاملة لمستويات السجلّ وأوصافها، راجِع سمات Edgemicro.

مثلاً، تضبط الإعدادات التالية مستوى التسجيل على debug:

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: debug
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

كيفية تغيير الفواصل الزمنية للسجلات

يمكنك تهيئة هذه الفواصل في ملف تهيئة Edge Microgateway. راجِع أيضًا إجراء تغييرات على الإعدادات.

السمات التي يمكن ضبطها هي:

  • stats_log_interval: (التلقائي: 60) الفاصل الزمني بالثواني عند عرض الإحصاءات سجلك في ملف سجل واجهة برمجة التطبيقات.
  • 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

كيفية تخفيف الأذونات الصارمة لملفات السجل

تلقائيًا، ينشئ Edge Microgateway ملف سجل التطبيق (api-log.log) باستخدام إذن الملف تم تعيين المستوى على 0600. لا يسمح مستوى الإذن هذا بالتطبيقات أو المستخدمين الخارجيين. لقراءة ملف السجل. لتخفيف مستوى الأذونات الصارمة هذا، يمكنك ضبط logging:disableStrictLogFile إلى true. عندما تكون هذه السمة true، يتم إنشاء ملف السجلّ باستخدام إذن الملف المعين على 0755. في حال عدم تقديم السمة false أو عدم تقديم السمة، سيتم ضبط القيمة التلقائية للإذن على 0600.

تمت إضافتها في الإصدار 3.2.3.

على سبيل المثال:

edgemicro:
 logging:
   disableStrictLogFile: true

الممارسات الجيدة لصيانة ملفات السجلّ

ومع تراكم بيانات ملف السجلّ بمرور الوقت، تنصح Apigee باستخدام ما يلي: الممارسات:

  • ونظرًا لأن ملفات السجل يمكن أن تصبح كبيرة للغاية، تأكد من أن دليل ملف السجل مساحة كافية. راجِع القسمَين التاليَين مكان تخزين ملفات السجلّ وكيفية تغيير ملف السجلّ التلقائي. الدليل.
  • عليك حذف ملفات السجلّ أو نقلها إلى دليل أرشيف منفصل مرة واحدة على الأقل أسبوعيًا.
  • إذا كانت سياستك هي حذف السجلّات، يمكنك استخدام الأمر CLI edgemicro log -c. إزالة (تنظيف) السجلات القديمة.

اصطلاح تسمية ملف السجلّ

ينتج عن كل مثيل Edge Microgateway ملف سجلّ بامتداد .log. تشير رسالة الأشكال البيانية على النحو التالي:

edgemicro-HOST_NAME-INSTANCE_ID-api.log

على سبيل المثال:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log

لمحة عن محتوى ملف السجلّ

تمت الإضافة في: الإصدار 2.3.3

بشكل تلقائي، تحذف خدمة التسجيل ملف JSON للخوادم الوكيلة والمنتجات وملف JSON الذي تم تنزيله رمز الويب المميّز (JWT). إذا كنت تريد إخراج هذه الكائنات إلى وحدة التحكم، فعين علامة سطر الأوامر DEBUG=* عند بدء تشغيل Edge Microgateway. على سبيل المثال:

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

محتوى "واجهة برمجة التطبيقات" ملف السجلّ

"واجهة برمجة التطبيقات" يحتوي ملف السجلّ على معلومات تفصيلية حول تدفق الطلبات والردود عبر بوابة Edge Microgateway. "واجهة برمجة التطبيقات" على النحو التالي:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

لكل طلب يتم إجراؤه على Edge Microgateway، يتم تسجيل أربعة أحداث في "واجهة برمجة التطبيقات" تسجيل الملف:

  • طلب وارد من العميل
  • طلب صادر تم إجراؤه إلى الهدف
  • ردّ وارد من الهدف
  • رد صادر للعميل

يتم تمثيل كل إدخال من هذه الإدخالات المنفصلة في تدوين مختصر للمساعدة في جعل السجل الملفات أكثر إحكاما. فيما يلي أربعة نماذج من الإدخالات تمثل كل من الأحداث الأربعة. في السجلّ هكذا، تظهر أرقام الأسطر كمرجع في المستند فقط، ولا تظهر في ملف السجل).

(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 - طابع تاريخ Unix
  • info - مستوى التسجيل. تعتمد هذه القيمة على سياق المعاملة ومجموعة مستوى التسجيل. في إعداد edgemicro. راجِع كيفية ضبط مستوى التسجيل. بالنسبة إلى سجلّات الإحصاءات، تم ضبط المستوى على stats. يتم الإبلاغ عن السجلات الإحصائية في فاصلاً منتظمًا تم ضبطه باستخدام إعدادات stats_log_interval. راجِع أيضًا كيفية تغيير الفواصل الزمنية للسجلّ.
  • req - لتحديد الحدث. في هذه الحالة، يطلب من البرنامج.
  • m - الفعل HTTP المستخدم في الطلب.
  • u - جزء عنوان URL الذي يلي المسار الأساسي.
  • h - المضيف ورقم المنفذ حيث توجد بوابة Edge Microgateway الاستماع.
  • r - المضيف البعيد والمنفذ حيث يطلب العميل التي تم إنشاؤها.
  • i - معرّف الطلب ستتشارك جميع إدخالات الحدث الأربعة هذا المعرّف. على كل يتم تعيين معرف طلب فريد لطلبك. يمكن أن يوفر ربط سجلات السجل حسب معرّف الطلب إحصاءات قيّمة حول وقت استجابة الهدف.
  • d - المدة بالمللي ثانية منذ استلام الطلب من قِبل مدخل مصغّر على حافة في المثال أعلاه، تم استلام ردّ الاستهداف على الطلب 0 بعد 7 مللي ثانية (السطر 3)، وتم إرسال الاستجابة إلى العميل بعد مللي ثانية (السطر 4). أو بعبارةٍ أخرى، بلغ إجمالي وقت استجابة الطلب 11 مللي ثانية، من والتي تم أخذها 7 مللي ثانية بواسطة الهدف و4 مللي ثانية بواسطة Edge Microgateway نفسها.

2. نموذج من الطلب الصادر الذي تم تقديمه إلى الهدف:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - طابع تاريخ Unix
  • info - مستوى التسجيل. تعتمد هذه القيمة على سياق المعاملة ومجموعة مستوى التسجيل. في إعداد edgemicro. راجِع كيفية ضبط مستوى التسجيل. بالنسبة إلى سجلّات الإحصاءات، تم ضبط المستوى على stats. يتم الإبلاغ عن السجلات الإحصائية في فاصلاً منتظمًا تم ضبطه باستخدام إعدادات stats_log_interval. راجِع أيضًا كيفية تغيير الفواصل الزمنية للسجلّ.
  • treq - لتحديد الحدث. في هذه الحالة، الطلب المستهدف.
  • m - الفعل HTTP المستخدَم في الطلب المستهدف.
  • u - جزء عنوان URL الذي يلي المسار الأساسي.
  • h - المضيف ورقم المنفذ لهدف الخلفية.
  • i - رقم تعريف إدخال السجل. ستشارك جميع إدخالات الحدث الأربعة هذه رقم التعريف

3. نموذج للردود الواردة من الهدف

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

1436403888651 - طابع تاريخ Unix

  • info - مستوى التسجيل. تعتمد هذه القيمة على سياق المعاملة ومجموعة مستوى التسجيل. في إعداد edgemicro. راجِع كيفية ضبط مستوى التسجيل. بالنسبة إلى سجلّات الإحصاءات، تم ضبط المستوى على stats. يتم الإبلاغ عن السجلات الإحصائية في فاصلاً منتظمًا تم ضبطه باستخدام إعدادات stats_log_interval. راجِع أيضًا كيفية تغيير الفواصل الزمنية للسجلّ.
  • tres - لتحديد الحدث. في هذه الحالة، الاستجابة المستهدفة.
  • s: حالة استجابة HTTP.
  • d - المدة بالمللي ثانية. الوقت الذي يستغرقه استدعاء واجهة برمجة التطبيقات بواسطة الهدف.
  • i - رقم تعريف إدخال السجل. ستشارك جميع إدخالات الحدث الأربعة هذه رقم التعريف

4- نموذج من الردّ الصادر إلى العميل

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

1436403888651 - طابع تاريخ Unix

  • info - مستوى التسجيل. تعتمد هذه القيمة على سياق المعاملة ومجموعة مستوى التسجيل. في إعداد edgemicro. راجِع كيفية ضبط مستوى التسجيل. بالنسبة إلى سجلّات الإحصاءات، تم ضبط المستوى على stats. يتم الإبلاغ عن السجلات الإحصائية في فاصلاً منتظمًا تم ضبطه باستخدام إعدادات stats_log_interval. راجِع أيضًا كيفية تغيير الفواصل الزمنية للسجلّ.
  • res - لتحديد الحدث في هذه الحالة، الاستجابة على البرنامج.
  • s: حالة استجابة HTTP.
  • d - المدة بالمللي ثانية. هذا هو إجمالي الوقت المستغرق من خلال طلب بيانات من واجهة برمجة التطبيقات، بما في ذلك الوقت الذي تستغرقه واجهة برمجة التطبيقات المستهدفة والوقت الذي يستغرقه Edge المدخل المصغّر نفسه.
  • i - رقم تعريف إدخال السجل. ستشارك جميع إدخالات الحدث الأربعة هذه رقم التعريف

الجدول الزمني لملف السجلّ

يتم تدوير ملفات السجلّ على الفاصل الزمني الذي تحدِّده دالة rotate_interval سمة الضبط. ستستمر إضافة الإدخالات إلى ملف السجل نفسه إلى أن تنتهي صلاحية فاصل الدوران. ولكن في كل مرة يتم فيها نقل تتم إعادة تشغيله، وسيتلقّى معرِّفًا فريدًا (UID) جديدًا وينشئ مجموعة جديدة من ملفات السجلّ باستخدام المعرّف الفريد هذا. يمكن أيضًا مراجعة الصيانة الجيدة لملفات السجلّ الممارسات.

رسائل الخطأ

تحتوي بعض إدخالات السجلّ على رسائل خطأ. للمساعدة في تحديد مكان حدوث الأخطاء وسبب حدوثها، عرض خطأ بوابة Microgateway من الحافة المرجع.

مرجع إعداد Edge Microgateway

موقع ملف إعداد

تقع سمات الإعدادات الموضحة في هذا القسم في بوابة Edge Microgateway ملف الإعداد. راجع أيضًا إجراء التهيئة التغييرات.

سمات Edge_config

تُستخدم هذه الإعدادات لتهيئة التفاعل بين مثيل Edge Microgateway Apigee Edge.

  • bootsttrip: (الإعداد التلقائي: لا شيء) عنوان URL يشير إلى إحدى الحافة. خدمة خاصة بالبوابة المصغّرة قيد التشغيل على Apigee Edge. تستخدم Edge Microgateway هذه الخدمة التواصل مع Apigee Edge. ويتم عرض عنوان URL هذا عند تنفيذ الأمر لإنشاء مفتاحا التشفير العام/الخاص: edgemicro genkeys. راجع صفحة إعداد وضبطها على Edge Microgateway للحصول على التفاصيل
  • jwt_public_key: (الإعداد التلقائي: none) عنوان URL يشير إلى بوابة Edge Microgateway الخادم الوكيل الذي تم نشره على Apigee Edge. يعمل هذا الخادم الوكيل كنقطة نهاية للمصادقة إصدار رموز الدخول الموقعة للعملاء. يتم عرض عنوان URL هذا عند تنفيذ الأمر تفعيل الخادم الوكيل: edgemicro Configuration راجع صفحة إعداد وضبطها على Edge Microgateway للحصول على التفاصيل
  • quotaUri: ضبط هذه الإعدادات إذا كنت تريد إدارة الحصص من خلال الخادم الوكيل edgemicro-auth الذي إلى مؤسستك. وإذا لم يتم ضبط هذه السمة، يتم تعيين نقطة نهاية الحصة تلقائيًا على نقطة نهاية Edge Microgateway الداخلية.
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

سمات Edgemicro

تعمل هذه الإعدادات على تهيئة عملية بوابة Edge Microgateway.

  • port: (الإعداد التلقائي: 8000) رقم المنفذ الذي على بوابة Edge Microgateway الاستماع إلى عملية ما.
  • max_connections: (الإعداد التلقائي: -1) لتحديد الحدّ الأقصى الاتصالات الواردة المتزامنة التي يمكن أن تستقبلها Edge Microgateway. إذا كان هذا الرقم تم تجاوزه، يتم عرض الحالة التالية:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (التلقائي: -1) الحد الأقصى لعدد الاتصالات المتزامنة التي يمكن أن يتلقاها Edge Microgateway قبل إيقاف الاتصال. هذا الإعداد يهدف إلى إحباط هجمات الحرمان من الخدمة. وعادةً ما يتم ضبطها على رقم أكبر من max_connections.
  • تسجيل الدخول:
    • level: (القيمة التلقائية: خطأ)
      • info - (مُقترح) لتسجيل جميع الطلبات والردود التي تتدفق من خلال مثيل Edge Microgateway.
      • warn - لتسجيل رسائل التحذير فقط.
      • error - يُسجّل رسائل الخطأ فقط.
      • debug: تُسجِّل رسائل تصحيح الأخطاء، بالإضافة إلى المعلومات والتحذيرات ورسائل الخطأ.
      • trace: تتتبّع السجلّات المعلومات بحثًا عن الأخطاء، بالإضافة إلى المعلومات والتحذيرات ورسائل الخطأ.
      • none: لا تنشئ ملف سجلّ.
    • dir: (الإعداد التلقائي: /var/tmp) الدليل الذي يتضمّن ملفات السجلّ تخزين البيانات.
    • stats_log_interval: (التلقائي: 60) الفاصل الزمني بالثواني عند عرض الإحصاءات سجلك في ملف سجل واجهة برمجة التطبيقات.
    • rotate_interval: (الافتراضي: 24) الفاصل الزمني، بالساعات، عندما تكون ملفات السجل تم تدويره.
  • المكوّنات الإضافية: تضيف المكوّنات الإضافية وظائف إلى بوابة Edge Microgateway. للحصول على التفاصيل حول تطوير المكوّنات الإضافية، راجع تطوير مكونات إضافية مخصصة.
  • dir: مسار نسبي من دليل ./gateway إلى الدليل دليل ./extensions أو مسار مطلق.
  • التسلسل: قائمة بوحدات المكوّنات الإضافية المطلوب إضافتها إلى جهاز Edge Microgateway مثال. سيتم تنفيذ الوحدات بالترتيب المحدد هنا.
  • debug: لإضافة تصحيح الأخطاء عن بُعد إلى عملية Edge Microgateway.
    • port: رقم المنفذ المطلوب الاستماع إليه على سبيل المثال، يمكنك ضبط برنامج تصحيح أخطاء بيئة التطوير المتكاملة (IDE). من الاستماع على هذا المنفذ.
    • الوسيطات: وسيطات لعملية تصحيح الأخطاء على سبيل المثال: args --nolazy
  • config_change_poll_interval: (الافتراضي: 600 ثانية) بوابة Edge Microgateway يُحمِّل ضبطًا جديدًا بشكلٍ دوري وينفِّذ عملية إعادة تحميل في حال حدوث أي تغيير. الاستطلاع تلتقط أي تغييرات يتم إجراؤها على Edge (التغييرات على المنتجات، والخوادم الوكيلة الواعية بالبوابة المصغّرة، وما إلى ذلك) بالإضافة إلى التغييرات التي تم إجراؤها على ملف التهيئة المحلي.
  • disable_config_poll_interval: (الإعداد التلقائي: خطأ) true إلى إيقاف استطلاع التغيير التلقائي.
  • request_timeout: لضبط مهلة للطلبات المستهدفة. تم تعيين المهلة في ثوانٍ. في حال انتهاء المهلة، يستجيب Edge Microgateway برمز الحالة 504. (مضاف) v2.4.x)
  • keep_alive_timeout: تتيح لك هذه السمة ضبط بوابة Edge Microgateway المهلة (بالمللي ثانية). (الافتراضي: 5 ثوانٍ) (تمت الإضافة v3.0.6)
  • headers_timeout: تحدد هذه السمة المدة الزمنية (بالمللي ثانية) فإن محلل HTTP سينتظر تلقي إكمال عناوين HTTP.

    على سبيل المثال:

    edgemicro:
      keep_alive_timeout: 6000
      headers_timeout: 12000

    داخليًا، تُعيِّن المعلمة Node.js Server.headersTimeout محددة في الطلبات. (الافتراضي: أكثر من 5 ثوانٍ الوقت المحدد مع edgemicro.keep_alive_timeout. هذا الإعداد التلقائي الإعداد إلى منع موازنات التحميل أو الخوادم الوكيلة من انقطاع الاتصال عن طريق الخطأ). (تمت الإضافة الإصدار 3.1.1)

  • noRuleMatchAction: (سلسلة) هو الإجراء الذي يجب اتخاذه (السماح بالوصول أو رفضه) إذا كانت لم يتم حل قاعدة المطابقة المحدّدة في المكوِّن الإضافي accesscontrol (غير متطابقة). القيمتان الصالحتان: ALLOW أو DENY القيمة التلقائية: ALLOW (تمت الإضافة: v3.1.7)
  • enableAnalytics: (تلقائي: true) ضبط السمة على false على منع المكوّن الإضافي للإحصاءات من التحميل. في هذه الحالة، لن يتم إجراء أي طلبات للحصول على إحصاءات Apigee Edge. في حال ضبطها على true، أو عند لم يتمّ توفير هذه السمة، سيعمل المكوّن الإضافي للتحليلات كالمعتاد. عرض سمات Edgemicro التفاصيل. (تمت إضافة الإصدار 3.1.8).

    مثال:

    edgemicro
      enableAnalytics=false|true
  • on_target_response_abort: تتيح لك هذه السمة التحكّم كيف يتصرف Edge Microgateway إذا كان الاتصال بين العميل (Edge Microgateway) يتم إغلاق الخادم الهدف قبل أوانه.
    القيمة الوصف
    تلقائي في حال عدم تحديد السمة on_target_response_abort، سيتم ضبط السلوك التلقائي. هي اقتطاع الاستجابة دون إظهار خطأ. في ملفات السجل، تحذير تظهر مع targetResponse aborted ورمز الاستجابة 502.
    appendErrorToClientResponseBody يتم إرجاع الخطأ المخصّص TargetResponseAborted إلى البرنامج. في ملفات السجل، تحذير تظهر مع targetResponse aborted ورمز الاستجابة 502. ضِمن بالإضافة إلى ذلك، يتم تسجيل الخطأ TargetResponseAborted مع الرسالة Target response ended prematurely.
    abortClientRequest يلغي Edge Microgateway الطلب، وتتم كتابة تحذير في ملفات السجل: TargetResponseAborted برمز حالة الطلب 502.

مثال:

edgemicro:
 on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest

سمات العناوين

تضبط هذه الإعدادات كيفية التعامل مع عناوين HTTP معيّنة.

  • x-forwarded-for: (تلقائي: true) يتم الضبط على false لمنع إعادة توجيه x للعناوين إلى الهدف. لاحظ أنه إذا كان العنوان x-forwarded-for في الطلب، فسيتم تعيين قيمته على قيمة client-ip في Edge Analytics.
  • x-forwarded-host: (تلقائي: true) يتم ضبطها على "خطأ" لمنع رؤوس x-forwarded-host يتم تمريرها إلى الهدف.
  • x-request-id: (تلقائي: صحيح) يتم ضبطه على "خطأ" لمنع رؤوس x-request-id لتمريرها إلى الهدف.
  • x-response-time: (تلقائي: صحيح) يتمّ ضبطه على خطأ لمنع تمرير رؤوس x-response-time إلى الهدف.
  • عبر: (تلقائي: صواب) يتم الضبط على خطأ لمنع أن تكون العناوين تمريره إلى الهدف.

سمات OAuth

تعمل هذه الإعدادات على ضبط كيفية فرض مصادقة العميل بواسطة Edge Microgateway.

  • allowNoAuthorization: (الإعداد التلقائي: خطأ) في حال الضبط على "صحيح"، تصبح طلبات البيانات من واجهة برمجة التطبيقات يُسمح بالمرور من خلال Edge Microgateway بدون أي عنوان تفويض على الإطلاق. ضبط هذا الإعداد على false لطلب عنوان التفويض (الإعداد التلقائي).
  • allowInvalidAuthorization: (الإعداد التلقائي: خطأ) في حال ضبطه على "صحيح"، تصبح طلبات البيانات من واجهة برمجة التطبيقات يُسمح باجتيازها إذا كان الرمز المميز الذي تم تمريره في عنوان التفويض غير صالح أو منتهي الصلاحية. ضبط هذا الإعداد إلى false لطلب رموز مميزة صالحة (الإعداد التلقائي).
  • Authorize-header: (تلقائي: التفويض: الحامل) الرأس المُستخدَم إرسال رمز الدخول إلى بوابة Edge Microgateway. وقد تحتاج إلى تغيير الإعداد التلقائي في الحالات التي يحتاج الهدف إلى استخدام رأس التفويض لغرض آخر.
  • api-key-header: (default: x-api-key) اسم الرأس أو طلب البحث المعلمة المستخدمة لتمرير مفتاح واجهة برمجة التطبيقات إلى Edge Microgateway. راجع أيضًا استخدام مفتاح واجهة برمجة التطبيقات.
  • keep-authorization-header: (الإعداد التلقائي: خطأ) في حال الضبط على "صحيح"، يتم عرض عنوان التفويض المرسلة في الطلب يتم تمريرها إلى الهدف (يتم الاحتفاظ بها).
  • allowOAuthOnly -- في حال ضبط هذه السياسة على "صحيح"، يجب أن تتضمن كل واجهة برمجة تطبيقات تفويضًا. مع رمز دخول الحامل. يُتيح لك السماح بنموذج أمان OAuth فقط (بينما الحفاظ على التوافق مع الأنظمة القديمة). (تمت الإضافة 2.4.x)
  • allowAPIKeyOnly -- إذا تم ضبط هذه السياسة على "صحيح"، يجب أن تتضمن كل واجهة برمجة تطبيقات رأس x-api-key (أو موقع مخصص) مع مفتاح واجهة برمجة التطبيقات.يسمح لك هذا فقط نموذج أمان مفتاح واجهة برمجة التطبيقات (مع الحفاظ على التوافق مع الأنظمة القديمة). (تمت الإضافة 2.4.x)
  • gracePeriod -- تساعد هذه المعلمة في منع الأخطاء الناتجة عن التناقضات بين وقتَي "لم يحدث قبل" (nbf) و"وقت الإصدار (iat) في ساعة النظام" المحدد في رمز تفويض JWT. اضبط هذه المَعلمة على عدد الثواني التي سيتم السماح بها بسبب هذه التناقضات. (تمت الإضافة 2.5.7)

الخاص بالمكوّن الإضافي السمات

راجع استخدام المكوّنات الإضافية للحصول على تفاصيل حول السمات القابلة للتهيئة لكل مكوّن إضافي.

الخوادم الوكيلة للتصفية

يمكنك فلترة الخوادم الوكيلة الواعية بالبوابة المصغّرة التي سيعالجها مثيل Edge Microgateway. عندما تبدأ بوابة Edge Microgateway، يتم تنزيل جميع الخوادم الوكيلة الواعية بالبوابة المصغّرة في والمؤسسة التي ترتبط بها. استخدم التهيئة التالية لتحديد الخوادم الوكيلة عملية المدخل الصغير. فعلى سبيل المثال، تحد هذه التهيئة من الخوادم الوكيلة للبوابة المصغّرة ستتم المعالجة على ثلاثة: edgemicro_proxy-1، edgemicro_proxy-2، وedgemicro_proxy-3:

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

فلترة المنتجات حسب الاسم

استخدم الإعداد التالي للحد من عدد منتجات واجهة برمجة التطبيقات التي تستخدمها ميزة Edge Microgateway عمليات التنزيل والعمليات. لفلترة المنتجات التي تم تنزيلها، عليك إضافة productnamefilter. معلَمة طلب البحث إلى واجهة برمجة التطبيقات /products المُدرجة في Edge Microgateway *.config.yaml الملف. على سبيل المثال:

edge_config:
  bootstrap: >-
    https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test
  jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'

لاحظ أنه يجب تحديد قيمة معلمة طلب البحث في تنسيق التعبير العادي أن يكون بترميز عنوان URL. على سبيل المثال، يتعرف التعبير العادي ^[Ee]dgemicro.*$ على أسماء مثل: "edgemicro-test-1" ، "edgemicro_demo" و"Edgemicro_New_Demo". قيمة عنوان URL المشفرة، تناسب استخدامها في معلمة طلب البحث، هي: %5E%5BEe%5Ddgemicro.%2A%24.

توضِّح نتائج تصحيح الأخطاء التالية أنّه تم تنزيل المنتجات التي تمّت فلترتها فقط:

...
2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK
...
....
....
{
   "apiProduct":[
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590549037549,
         "createdBy":"k***@g********m",
         "displayName":"test upper case in name",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590549037549,
         "lastModifiedBy":"k***@g********m",
         "name":"Edgemicro_New_Demo",
         "proxies":[
            "catchall"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590548328998,
         "createdBy":"k***@g********m",
         "displayName":"edgemicro test 1",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590548328998,
         "lastModifiedBy":"k***@g********m",
         "name":"edgemicro-test-1",
         "proxies":[
            "Lets-Encrypt-Validation-DoNotDelete"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[
            "/",
            "/**"
         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1558182193472,
         "createdBy":"m*********@g********m",
         "displayName":"Edge microgateway demo product",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1569077897465,
         "lastModifiedBy":"m*********@g********m",
         "name":"edgemicro_demo",
         "proxies":[
            "edgemicro-auth",
            "edgemicro_hello"
         ],
         "quota":"600",
         "quotaInterval":"1",
         "quotaTimeUnit":"minute",
         "scopes":[

         ]
      }
   ]
}

فلترة المنتجات حسب السمات المخصّصة

لفلترة المنتجات استنادًا إلى سمات مخصّصة:

  1. في واجهة مستخدم Edge، اختَر الخادم الوكيل edgemicro_auth في المؤسسة/البيئة. حيث قمت بتهيئة Edge Microgateway.
  2. في النقر على "تطوير"، افتح سياسة JavaCallout في المحرِّر.
  3. أضِف سمة مخصّصة باستخدام المفتاح products.filter.attributes مع الفصل بينها بفواصل. قائمة بأسماء السمات. المنتجات التي تحتوي على أيٍّ من أسماء السمات المخصّصة فقط سيتم إرجاعه إلى Edge Microgateway.
  4. يمكنك إيقاف عمليات التحقّق اختياريًا لمعرفة ما إذا كان المنتج مفعَّلاً للبيئة الحالية من خلال ضبط السمة المخصصة من products.filter.env.enable إلى false. (القيمة التلقائية هي true.)
  5. (السحابة الخاصة فقط) إذا كنت تستخدم Edge for Private Cloud، اضبط الخاصية من org.noncps إلى true لسحب المنتجات إلى البيئات التي لا تتوفّر فيها خدمة CPS.
  6. على سبيل المثال:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout">
        <DisplayName>JavaCallout</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="products.filter.attributes">attrib.one, attrib.two</Property>
            <Property name="products.filter.env.enable">false</Property>
            <Property name="org.noncps">true</Property>
        </Properties>
        <ClassName>io.apigee.microgateway.javacallout.Callout</ClassName>
        <ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL>
    </JavaCallout>
    

ضبط معدّل تكرار إرسال الإحصاءات

استخدام مَعلمات الضبط هذه للتحكّم في معدّل تكرار إرسال بوابة Edge Microgateway بيانات إحصائية إلى Apigee:

  • bufferSize (اختياري): الحدّ الأقصى لعدد سجلّات الإحصاءات التي المخزن المؤقت يمكن أن يحتفظ قبل البدء في إسقاط السجلات الأقدم. الافتراضية: 10000
  • batchSize (اختيارية): الحد الأقصى لحجم دفعة من سجلّات الإحصاءات يتم إرساله إلى Apigee. القيمة التلقائية: 500
  • flushInterval (اختيارية): عدد المللي ثانية بين كل تدفق إرسال دفعة من سجلات التحليلات إلى Apigee. القيمة التلقائية: 5,000

على سبيل المثال:

analytics:
  bufferSize: 15000
  batchSize: 1000
  flushInterval: 6000

إخفاء بيانات التحليلات

تمنع الإعدادات التالية ظهور معلومات مسار الطلب في Edge "إحصاءات YouTube". أضف ما يلي إلى إعداد المدخل الصغير لحجب عنوان URI للطلب و/أو مسار الطلب. تجدر الإشارة إلى أنّ معرّف الموارد المنتظم (URI) مؤلف من أجزاء مسار الطلب واسم المضيف.

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

فصل طلبات البيانات من واجهة برمجة التطبيقات في Edge Analytics

يمكنك ضبط المكوّن الإضافي للتحليلات لفصل مسار معيّن لواجهة برمجة التطبيقات بحيث يظهر خادم وكيل منفصل في لوحات بيانات Edge Analytics على سبيل المثال، يمكنك فصل واجهة برمجة التطبيقات للتحقق من الصحة في لوحة البيانات لتجنب الالتباس مع الطلبات الفعلية لخادم وكيل واجهة برمجة التطبيقات. في جلسة المعمل، في لوحة بيانات "إحصاءات Google"، تتّبع الخوادم الوكيلة المنفصلة نمط التسمية التالي:

edgemicro_proxyname-health

تعرِض الصورة التالية خادمَين وكيلَين منفصلَين في لوحة بيانات "إحصاءات Google": edgemicro_hello-health و edgemicro_mock-health:

استخدام هذه لفصل المسارات النسبية والمطلقة في لوحة بيانات "إحصاءات Google" كخوادم وكيلة منفصلة:

  • relativePath (اختيارية): تحدد مسارًا نسبيًا للفصل في الجدول لوحة بيانات "إحصاءات YouTube". مثلاً، إذا حدّدت /healthcheck، جميع طلبات البيانات من واجهة برمجة التطبيقات التي تحتوي على المسار سيظهر /healthcheck في لوحة البيانات باسم edgemicro_proxyname-health. تجدر الإشارة إلى أنّ هذه العلامة تتجاهل المسار الأساسي للخادم الوكيل. للفصل استنادًا إلى مسار كامل، بما في ذلك المسار الأساسي، استخدِم علامة proxyPath.
  • proxyPath (اختياري): يحدد مسارًا كاملاً للخادم الوكيل لواجهة برمجة التطبيقات، بما في ذلك الخادم الوكيل الأساسية، لفصلها في لوحة بيانات التحليلات. على سبيل المثال، إذا حددت /mocktarget/healthcheck، حيث /mocktarget هو المسار الأساسي للخادم الوكيل، فستتغيّر جميع طلبات البيانات من واجهة برمجة التطبيقات التي تتضمّن المسار /mocktarget/healthcheck تظهر في لوحة البيانات باسم edgemicro_proxyname-health.

على سبيل المثال، في الإعدادات التالية، أي مسار لواجهة برمجة تطبيقات يحتوي على /healthcheck من خلال المكون الإضافي للتحليلات. وهذا يعني أنّ /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 سيتم فصلها كخادم وكيل منفصل يسمى edgemicro_proxyname-health في لوحة بيانات الإحصاءات

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  proxyPath: /mocktarget/healthcheck

إعداد ممر Edge Microgateway خلف جدار حماية للشركة

استخدام خادم وكيل HTTP للاتصال بـ Apigee Edge

تمت الإضافة في الإصدار 3.1.2.

لاستخدام وكيل HTTP للاتصال بين Edge Microgateway وApigee Edge، اتّبِع الخطوات التالية: التالي:

  1. ضبط متغيّرات البيئة "HTTP_PROXY" وHTTPS_PROXY" و"NO_PROXY" هذه المتغيرات تتحكم في المضيفات لكل خادم وكيل HTTP ترغب في استخدامه للتواصل مع Apigee Edge أو المضيف الذي يجب ألا يتعامل مع الاتصال مع Apigee Edge. على سبيل المثال:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

    لاحظ أن NO_PROXY يمكن أن يكون قائمة بالنطاقات المفصولة بفواصل عبر Edge Microgateway لا يجب أن يكون وكيلاً له.

    لمزيد من المعلومات عن هذه المتغيرات، يُرجى الاطّلاع على https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables.

  2. أعِد تشغيل Edge Microgateway.

استخدام وكيل HTTP للاتصال المستهدف

تمت الإضافة في الإصدار 3.1.2.

لاستخدام وكيل HTTP للاتصال بين Edge Microgateway وأهداف الواجهة الخلفية، قم بما يلي:

  1. أضف الإعداد التالي إلى ملف تهيئة Microgateway:
    edgemicro:
      proxy:
        tunnel: true | false
        url: proxy_url
        bypass: target_host # target hosts to bypass the proxy.
        enabled: true | false

    المكان:

    • tunnel: (اختياري) عندما يكون true، تستخدم Edge Microgateway طريقة اتصال HTTP للاتصال النفقي HTTP الطلبات عبر اتصال TCP واحد. (ينطبق الشيء نفسه إذا كانت متغيرات البيئة، مثل المذكورة أدناه لإعداد الخادم الوكيل، يتم تفعيل بروتوكول أمان طبقة النقل (TLS). اللغة التلقائية: false
    • url: عنوان URL لخادم وكيل HTTP.
    • تجاوز: (اختيارية) تحدّد عنوان URL واحدًا أو أكثر من عناوين URL للمضيف المستهدف مفصولة بفواصل والتي أن يتجاوز وكيل HTTP. إذا لم يتم ضبط هذه السمة، استخدِم NO_PROXY. متغير البيئة لتحديد عناوين URL المستهدفة المطلوب تجاوزها.
    • مفعَّل: في حال ضبط السياسة على "صحيح" وضبط proxy.url، استخدِم القيمة proxy.url للخادم الوكيل HTTP. إذا تم ضبط السياسة على "صحيح" ولم يتم ضبط proxy.url، استخدِم الخوادم الوكيلة المحدَّدة في الخادم الوكيل HTTP. متغيري البيئة HTTP_PROXY وHTTPS_PROXY، كما هو موضح في استخدام خادم وكيل HTTP للاتصال بـ Apigee Edge

    على سبيل المثال:

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

  2. أعِد تشغيل Edge Microgateway.

استخدام أحرف البدل في نسخ مخصصة لبوابة الدخول الصغيرة خوادم وكيلة

يمكنك استخدام علامة "*" واحدة أو أكثر أحرف البدل في المسار الأساسي الخادم الوكيل edgemicro_* (متوافق مع Microgateway). على سبيل المثال، المسار الأساسي /team/*/members يسمح للعملاء بالاتصال https://[host]/team/blue/members https://[host]/team/green/members بدون الحاجة إلى إنشاء خوادم وكيلة جديدة لواجهة برمجة التطبيقات لدعم الفرق الجديدة. يُرجى العِلم أنّ /**/ غير متاح.

ملاحظة مهمة: لا تتيح Apigee استخدام حرف بدل "*". باعتباره العنصر الأول في المسار الأساسي. على سبيل المثال، لا يتوفّر هذا النوع من البحث: بحث /*/.

تدوير مفاتيح JWT

بعد مرور بعض الوقت على إنشاء JWT بشكل مبدئي، قد تحتاج إلى تغيير زوج المفاتيح العام/الخاص مخزنة في KVM تشفير Edge. هذه عملية إنشاء مفتاح جديد تدوير المفتاح.

كيفية استخدام Edge Microgateway لـ JWT

رمز JSON المميّز للويب (JWT) هو معيار للرمز المميّز موضّح في RFC7519. توفر JWT وسيلة للتوقيع على مجموعة من المطالبات، التي يمكن التحقق منها بشكل موثوق بواسطة متلقي JWT.

يمكنك إنشاء JWT باستخدام واجهة سطر الأوامر واستخدامه في عنوان التفويض لطلبات البيانات من واجهة برمجة التطبيقات بدلاً من مفتاح واجهة برمجة التطبيقات على سبيل المثال:

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

للحصول على معلومات حول إنشاء JWT باستخدام واجهة سطر الأوامر، يمكنك الاطّلاع على إنشاء رمز مميّز.

ما المقصود بتدوير المفتاح؟

بعد مرور بعض الوقت على إنشاء JWT بشكل مبدئي، قد تحتاج إلى تغيير زوج المفاتيح العام/الخاص مخزنة في KVM تشفير Edge. هذه عملية إنشاء مفتاح جديد تدوير المفتاح. عند تدوير المفاتيح، يتم إنشاء زوج مفاتيح خاص/عام جديد مخزنة في "البوابة الصغيرة" KVM في مؤسسة/بيئة Apigee Edge. بالإضافة إلى ذلك، يتم الاحتفاظ بالمفتاح العام القديم مع قيمة معرّف المفتاح الأصلية.

لإنشاء JWT، تستخدم Edge المعلومات المخزنة في KVM المشفر. حاسمة تم إنشاء KVM المسمى microgateway وتعبئته بمفاتيح في البداية التي تم إعدادها (الضبط) مدخل مصغّر على حافة تُستخدم المفاتيح في 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: المفتاح العام القديم

سيتم إثبات صحة ملفات JWT المقدَّمة لإثبات الملكية باستخدام المفتاح العام الجديد. في حال حذف فشل التحقق، فسيتم استخدام المفتاح العام القديم، إلى أن تنتهي صلاحية JWT (بعد الفاصل الزمنيToken_expiry*، حيث تبلغ القيمة الافتراضية 30 دقيقة). ضِمن بهذه الطريقة، يمكنك "تدوير" بدون تعطيل حركة بيانات واجهة برمجة التطبيقات فورًا.

كيفية إجراء تدوير للمفاتيح

يشرح هذا القسم كيفية تغيير المفاتيح.

  1. لترقية KVM، استخدِم الأمر edgemicro upgradekvm. للحصول على التفاصيل عند تشغيل هذا الأمر، راجع ترقية آلة متجه الدعم. عليك تنفيذ هذه الخطوة مرة واحدة فقط.
  2. لترقية الخادم الوكيل edgemicro-oauth، استخدِم الأمر edgemicro upgradeauth. للحصول على تفاصيل عن تشغيل هذا الأمر، يمكنك الاطّلاع على ترقية الخادم الوكيل لاعتماد Edgemicro عليك تنفيذ هذه الخطوة مرة واحدة فقط.
  3. أضِف السطر التالي إلى ملف ~/.edgemicro/org-env-config.yaml، حيث يجب تحديد نفس المؤسسة والبيئة التي ضبطت المدخل المصغّر لاستخدامهما:
    jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
  4. شغّل أمر تدوير المفاتيح لتدوير المفاتيح. للحصول على تفاصيل عن هذا الأمر، راجِع تدوير المفاتيح:

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

    على سبيل المثال:

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

بعد تدوير المفتاح، تعرض Edge العديد من المفاتيح لـ Edge Microgateway. ملاحظة في المثال التالي، لكل مفتاح "طفل" فريد (رقم تعريف المفتاح). بعد ذلك يستخدم المدخل الصغير هذه للتحقق من رموز التفويض. وإذا فشل التحقق من صحة الرمز المميز، فسينظر المدخل الصغير إلى التحقق مما إذا كان هناك مفتاح قديم في مجموعة المفاتيح ثم تجربة هذا المفتاح. يمثل تنسيق التي يتم إرجاعها هي 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"
    }
  ]
}

تهيئة "ليس قبل" تأخير

في الإصدار 3.1.5 والإصدارات السابقة، استغرق استخدام المفتاح الخاص الجديد الذي أنشأه الأمر rotatekey على الفور، وتم توقيع رموز مميزة جديدة تم إنشاؤها باستخدام المفتاح الخاص الجديد. ومع ذلك، عدم إتاحة المفتاح العام الجديد إلا لمثيلات Edge Microgateway كل 10 دقائق (تلقائيًا) عندما تم تحديث إعداد المدخل الصغير. وبسبب هذا التأخير بين توقيع الرمز المميّز وتحديث مثيل المدخل الجزئي، فسيتم رفض الرموز المميزة الموقّعة بأحدث مفتاح حتى تلقّت جميع الأجهزة أحدث مفتاح عام.

وفي الحالات التي توجد فيها مثيلات متعددة للبوابة المصغّرة، يؤدي تأخّر المفتاح العام أحيانًا إلى في أخطاء وقت تشغيل متقطّعة بالحالة 403، لأنّ التحقّق من صحة الرمز المميّز يمر ولكن يحدث إخفاق في حدث آخر إلى أن يتم تحديث جميع المثيلات.

بدءًا من الإصدار 3.1.6، تسمح لك علامة جديدة على الأمر rotatekey بتحديد فترة تأخير للاستجابة الجديدة مفتاحًا خاصًا ليصبح فعّالاً، ما يتيح وقتًا لتحديث جميع مثيلات المدخل الدقيق وتحصل على المفتاح العام الجديد. العلامة الجديدة هي --nbf، والتي تعني "ليس قبل ذلك". تأخذ هذه العلامة قيمة عدد صحيح، وهو عدد الدقائق المطلوب تأخيرها.

وفي المثال التالي، يتم ضبط التأخير على 15 دقيقة:

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

يُرجى العِلم أنّه من الممارسات الجيدة ضبط وقت التأخير ليكون أكثر من قيمة إعداد الضبط في config_change_poll_internal. وهي 10 دقائق افتراضيًا. راجِع أيضًا سماتedgemicro.

تصفية الخوادم الوكيلة التي تم تنزيلها

ينزّل Edge Microgateway تلقائيًا جميع الخوادم الوكيلة في مؤسسة Edge تبدأ ببادئة التسمية "edgemicro_". يمكنك تغيير هذا الإعداد التلقائي لتنزيل الخوادم الوكيلة التي تتطابق أسماؤها مع نمط ما.

  1. افتح ملف إعداد Edge Micro: ~/.edgemicro/org-env-config.yaml
  2. أضف عنصر clientPattern ضمن Edge_config. على سبيل المثال، النمط التالي لتنزيل الخوادم الوكيلة مثل Edgemicro_foo وEdmicro_Fast وEdmicro_first.
    edge_config:proxyPattern: edgemicro_f*

تحديد المنتجات بدون خوادم وكيلة لواجهة برمجة التطبيقات

في Apigee Edge، يمكنك إنشاء منتج واجهة برمجة تطبيقات لا يحتوي على أي خوادم وكيلة لواجهة برمجة التطبيقات. تتيح إعدادات المنتج هذه استخدام مفتاح واجهة برمجة تطبيقات مرتبط بهذا المنتج مع أي الذي تم نشره في مؤسستك. اعتبارًا من الإصدار 2.5.4، تدعم Edge Microgateway هذا المنتج التكوين.

تصحيح الأخطاء وتحديد المشاكل وحلّها

الاتصال ببرنامج تصحيح الأخطاء

يمكنك تشغيل Edge Microgateway باستخدام برنامج تصحيح أخطاء، مثل node-inspector. هذا مفيد استكشاف الأخطاء وإصلاحها وتصحيح الأخطاء في المكونات الإضافية المخصصة.

  1. أعِد تشغيل Edge Microgateway في وضع تصحيح الأخطاء. لتنفيذ ذلك، أضِف DEBUG=* إلى العنصر. بداية الأمر start:
    DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    لتوجيه نتائج تصحيح الأخطاء إلى ملف، يمكنك استخدام الأمر التالي:

    export DEBUG=* nohup edgemicro start \
    -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log

  2. ابدأ برنامج تصحيح الأخطاء واضبطه على الاستماع إلى رقم المنفذ لعملية تصحيح الأخطاء.
  3. يمكنك الآن التنقل عبر كود Edge Microgateway وتعيين نقاط التوقف وتعبيرات المشاهدة وهكذا

يمكنك تحديد علامات Node.js العادية المرتبطة بوضع تصحيح الأخطاء. على سبيل المثال: يساعد --nolazy في تصحيح أخطاء الرمز غير المتزامن.

جارٍ التحقّق من ملفات السجلّ

إذا كنت تواجه مشاكل، يُرجى التأكّد من فحص ملفات السجلّ بحثًا عن تفاصيل التنفيذ والخطأ. المعلومات. لمعرفة التفاصيل، يُرجى الاطّلاع على إدارة ملفات السجلّ.

استخدام أمان مفتاح واجهة برمجة التطبيقات

توفر مفاتيح واجهة برمجة التطبيقات آلية بسيطة لمصادقة العملاء الذين يقدمون طلبات إلى Edge مدخل مصغّر. يمكنك الحصول على مفتاح واجهة برمجة التطبيقات عن طريق نسخ قيمة مفتاح المستهلك (يُسمى أيضًا رقم تعريف العميل) من منتج Apigee Edge الذي يشتمل على الخادم الوكيل لمصادقة Edge Microgateway.

التخزين المؤقت للمفاتيح

يتم استبدال مفاتيح واجهة برمجة التطبيقات برموز الحامل المميزة، والتي يتم تخزينها مؤقتًا. يمكنك تعطيل التخزين المؤقت عن طريق تعيين عنوان Cache-Control: no-cache في الطلبات الواردة إلى Edge مدخل مصغّر.

استخدام مفتاح واجهة برمجة التطبيقات

يمكنك تمرير مفتاح واجهة برمجة التطبيقات في طلب بيانات من واجهة برمجة التطبيقات إما كمعلمة طلب بحث أو في عنوان. بشكل افتراضي، اسم معلَمة العنوان وطلب البحث هما 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 هو الاسم المستخدَم لكل من عنوان مفتاح واجهة برمجة التطبيقات ومعلمة طلب البحث. يمكنك تغيير هذا الإعداد التلقائي في ملف الإعداد، كما هو موضّح في مقالة إجراء تغييرات على الإعدادات. على سبيل المثال، لتغيير اسم apiKey:

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

في هذا المثال، تم تغيير كل من معلَمة طلب البحث واسم العنوان إلى apiKey. تشير رسالة الأشكال البيانية لن يعمل الاسم x-api-key في كلتا الحالتين. يمكن أيضًا مراجعة إجراء تغييرات على الإعدادات:

على سبيل المثال:

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

لمزيد من المعلومات حول استخدام مفاتيح واجهة برمجة التطبيقات مع طلبات الخادم الوكيل، راجع مدخل Micro Edge المصغّر

تفعيل رموز الاستجابة السريعة

يعرض المكوّن الإضافي oauth بشكل تلقائي رموز حالة خطأ 4xx فقط في حال الرد ليس الحالة 200. يمكنك تغيير هذا السلوك تعرض رمز 4xx أو 5xx بالضبط حسب الخطأ.

لتفعيل هذه الميزة، عليك إضافة "oauth.useUpstreamResponse: true". إلى تهيئة Edge Microgateway. على سبيل المثال:

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

استخدام أمان رمز OAuth2 المميز

يوضح هذا القسم كيفية الحصول على رموز الدخول عبر OAuth2 ورموز إعادة التحميل. تُستخدم رموز الدخول لجعل واجهة برمجة التطبيقات الآمنة من خلال المدخل المصغّر. تُستخدم رموز إعادة التحميل للحصول على رموز دخول جديدة.

كيفية الحصول على رمز دخول

يشرح هذا القسم كيفية استخدام الخادم الوكيل edgemicro-auth للحصول على رمز دخول.

يمكنك أيضًا الحصول على رمز دخول باستخدام الأمر edgemicro token CLI. للحصول على تفاصيل حول واجهة سطر الأوامر، يُرجى الاطّلاع على إدارة الرموز المميّزة.

واجهة برمجة التطبيقات 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"

واجهة برمجة التطبيقات 2: إرسال بيانات الاعتماد في عنوان المصادقة الأساسية

أرسل بيانات اعتماد العميل كعنوان للمصادقة الأساسية 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"

نموذج الناتج

تعرض واجهة برمجة التطبيقات استجابة JSON. يُرجى العِلم أنّه لا يوجد فرق بين token و موقعان (access_token) يمكنك استخدام أي منهما. لاحظ أن expires_in عدد صحيح محدد بالثواني.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": 1799
}

كيفية الحصول على رمز مميّز لإعادة التحميل

للحصول على رمز مميّز لإعادة التحميل، يمكنك طلب بيانات من واجهة برمجة التطبيقات إلى نقطة نهاية /token في الخادم الوكيل edgemicro-auth يجب إجراء طلب البيانات من واجهة برمجة التطبيقات باستخدام 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"
    }'

    تعرض واجهة برمجة التطبيقات رمز دخول ورمزًا مميزًا لإعادة التحميل. يبدو الرد مشابهًا هذا. تجدر الإشارة إلى أنّ expires_in يقدِّر الأعداد الصحيحة ويتم تحديدها بالثواني.

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": 108,
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": 431,
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  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"
        }

المراقبة الدائمة

تحديد نقطة نهاية لملف الإعداد

إذا كنت تشغّل مثيلات Edge Microgateway متعددة، فقد تحتاج إلى إدارة إعدادها من مكان واحد. يمكنك القيام بذلك عن طريق تحديد نقطة نهاية HTTP حيث يمكن لـ Edge Micro تنزيل ملف التهيئة الخاص به. يمكنك تحديد نقطة النهاية هذه عند بدء تشغيل Edge Micro باستخدام العلامة u-.

على سبيل المثال:

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

حيث تُرجع نقطة النهاية mgconfig محتوى ملف الإعداد. هذا هو الملف تقع تلقائيًا في ~/.edgemicro وتتضمّن اصطلاح التسمية: org-env-config.yaml

جارٍ إيقاف التخزين المؤقت لبيانات اتصال TCP

يمكنك استخدام سمة الإعداد nodelay لإيقاف التخزين المؤقت للبيانات اتصالات TCP المستخدمة من قِبل Edge Microgateway.

تستخدم اتصالات 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 المصغر في الوضع المستقل

يمكنك تشغيل بوابة Edge Microgateway غير المتصلة تمامًا من أي تعتمد على Apigee Edge. ويتيح لك هذا السيناريو، المسمى الوضع المستقل، تشغيل واختبار ميزة Edge Microgateway وبدون اتصال بالإنترنت.

في الوضع المستقل، لا تعمل الميزات التالية، لأنها تتطلب اتصالاً إلى Apigee Edge:

  • مفتاح OAuth ومفتاح واجهة برمجة التطبيقات
  • الحصة
  • الإحصاءات

من ناحية أخرى، تعمل المكونات الإضافية المخصصة وارتفاع معدل الاعتقال بشكل طبيعي، لأنها لا الاتصال بـ Apigee Edge. بالإضافة إلى ذلك، يتيح لك مكون إضافي جديد يسمى extauth السماح باستدعاءات واجهة برمجة التطبيقات إلى البوابة المصغّرة باستخدام JWT في الوضع المستقل.

إعداد البوابة وبدء تشغيلها

لتشغيل Edge Microgateway في الوضع المستقل:

  1. أنشئ ملف إعداد بالاسم التالي: $HOME/.edgemicro/$ORG-$ENV-config.yaml

    على سبيل المثال:

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. ألصق الرمز التالي في الملف:
    edgemicro:
      port: 8000
      max_connections: 1000
      config_change_poll_interval: 600
      logging:
        level: error
        dir: /var/tmp
        stats_log_interval: 60
        rotate_interval: 24
      plugins:
        sequence:
          - extauth
          - spikearrest
    headers:
      x-forwarded-for: true
      x-forwarded-host: true
      x-request-id: true
      x-response-time: true
      via: true
    extauth:
      publickey_url: https://www.googleapis.com/oauth2/v1/certs
    spikearrest:
      timeUnit: second
      allow: 10
      buffersize: 0
  3. تصدير متغيّر البيئة التالي بالقيمة "1":
    export EDGEMICRO_LOCAL=1
  4. نفِّذ الأمر start التالي، حيث تُدخل قيمًا لإنشاء مثيل الوكيل المحلي:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    المكان:

    • $ORG هي "المؤسسة". المستخدم الذي استخدمته في اسم ملف التهيئة.
    • "$ENV" هي "البيئة" الاسم الذي استخدمته في ملف الإعداد الاسم.
    • $LOCAL_PROXY_NAME هو اسم الخادم الوكيل المحلي الذي سيتم إنشاؤه. يمكنك استخدام بأي اسم تريده.
    • $LOCAL_PROXY_VERSION هو رقم إصدار الخادم الوكيل.
    • $TARGET_URL هو عنوان URL للهدف من الخادم الوكيل. (الهدف هو التي يستدعيها الخادم الوكيل).
    • $BASE_PATH هو المسار الأساسي للخادم الوكيل. يجب أن تبدأ هذه القيمة ببادئة شرطة مائلة. بالنسبة إلى مسار القاعدة الجذر، حدد فقط شرطة مائلة للأمام؛ على سبيل المثال، "/".

    على سبيل المثال:

    edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  5. اختبِر الإعدادات.
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

    بما أن المكوّن الإضافي extauth موجود في ملف foo-bar-config.yaml، يمكنك الحصول على الحقل "frequent_ المشاهدات" خطأ. يتحقق هذا المكون الإضافي من JWT الذي يجب أن يكون موجودًا في التفويض. عنوان طلب بيانات من واجهة برمجة التطبيقات. في القسم التالي، ستحصل على JWT الذي سيسمح باستدعاءات واجهة برمجة التطبيقات أن تمر بدون حدوث الخطأ.

مثال: الحصول على رمز مميّز للمصادقة

يوضح المثال التالي كيفية الحصول على JWT من نقطة نهاية Edge Microgateway JWT على Apigee Edge (edgemicro-auth/jwkPublicKeys). يتم نشر نقطة النهاية هذه عند إجراء إعداد وضبط عادي لـ Edge Microgateway. للحصول على JWT من نقطة نهاية Apigee، يجب أولاً إعداد إعداد Edge Microgateway القياسي، متصل بالإنترنت. تُستخدم نقطة نهاية Apigee هنا لأغراض أمثلة فقط وهي غير مطلوبة. يمكنك استخدام نقطة نهاية أخرى لرمز JWT المميز إذا أردت. إذا فعلت ذلك، فستحتاج إلى الحصول على JWT باستخدام واجهة برمجة التطبيقات المقدمة لنقطة النهاية هذه.

توضّح الخطوات التالية كيفية الحصول على رمز مميّز باستخدام نقطة نهاية edgemicro-auth/jwkPublicKeys:

  1. عليك تنفيذ جدول بيانات إعداد وضبط Edge Microgateway لتفعيل الخادم الوكيل edgemicro-auth في مؤسستك أو بيئتك على Apigee Edge. إذا سبق لك إجراء هذه الخطوة، لن تحتاج إلى تكرارها.
  2. إذا نشرت Edge Microgateway في Apigee Cloud، يجب أن تكون متصلاً بالإنترنت حتى تتمكن من الحصول على JWT من نقطة النهاية هذه.
  3. إيقاف Edge Microgateway:
    edgemicro stop
  4. في ملف الإعداد الذي أنشأته سابقًا ($HOME/.edgemicro/org-env-config.yaml)، توجيه extauth:publickey_url إلى نقطة النهاية edgemicro-auth/jwkPublicKeys في مؤسسة أو بيئة Apigee Edge. على سبيل المثال:
    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 هذا:

يمكنك إنشاء JWT for Edge Microgateway باستخدام الأمر edgemicro token أو واجهة برمجة التطبيقات. على سبيل المثال:

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 والذي يمكن استخدامه بعد ذلك للتحقّق من واجهة برمجة التطبيقات. الاتصالات.

يمكنك الاطّلاع أيضًا على إنشاء رمز مميّز.

اختبار الإعدادات المستقلة

لاختبار الإعدادات، اطلب واجهة برمجة التطبيقات التي تتضمّن الرمز المميّز الذي تمت إضافته في عنوان التفويض على النحو التالي:

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 الخادم الوكيل microgateway-aware لنشره على Apigee Edge. بدلاً من ذلك، يمكنك تهيئة "خادم وكيل محلي" من خلال توفير اسم خادم وكيل محلي ومسار أساسي وعنوان URL مستهدف عند لبدء المدخل الصغير. بعد ذلك، يتم إرسال طلبات البيانات من واجهة برمجة التطبيقات إلى البوابة المصغّرة إلى الهدف. عنوان URL للخادم الوكيل المحلي. وفي جميع الجوانب الأخرى، يعمل وضع الخادم الوكيل المحلي بالطريقة نفسها التي يعمل بها وضع جسر Edge Microgateway في الوضع العادي. طريقة عمل المصادقة والارتفاع المفاجئ الاعتقال وفرض الحصّة، والمكوّنات الإضافية المخصّصة، وما إلى ذلك

حالة الاستخدام والمثال

يكون وضع الخادم الوكيل المحلي مفيدًا عندما تحتاج فقط إلى ربط خادم وكيل واحد ببوابة Edge Microgateway مثال. على سبيل المثال، يمكنك إدخال Edge Microgateway في Kubernetes كخادم وكيل جانبي، حيث يكون ممر صغير وخدمة تعمل كل منهما في حجرة واحدة، وحيث يدير المدخل الدقيق حركة المرور إلى ومن الخدمة المصاحبة لها. يوضح الشكل التالي هذه البنية حيث يكون Edge تعمل بوابة Microgateway كخادم وكيل جانبي في مجموعة Kubernetes. يتحدث كل مثيل بوابة صغيرة فقط لنقطة نهاية واحدة على الخدمة المصاحبة لها:

Edgemicro على شكل Sidecar

تتمثل إحدى فوائد هذا النمط من البنية في أن Edge Microgateway يوفر واجهة برمجة تطبيقات إدارة الخدمات الفردية المنشورة في بيئة حاوية، مثل مجموعة Kubernetes.

إعداد وضع الخادم الوكيل المحلي

لإعداد Edge Microgateway للتشغيل في وضع الخادم الوكيل المحلي، اتبع الخطوات التالية:

  1. يمكنك تشغيل edgemicro init لإعداد بيئة الضبط المحلية بالضبط كما تفعل في إعداد بوابة Edge Microgateway النموذجية. يمكن أيضًا مراجعة اضبط بوابة Edge Microgateway.
  2. شغِّل edgemicro configure، كما تفعل في إعداد Edge Microgateway النموذجي الإجراء. على سبيل المثال:
    edgemicro configure -o your_org -e your_env -u your_apigee_username

    ينشر هذا الأمر سياسة edgemicro-auth على متصفّح Edge ويعرض مفتاحًا. وسرّ أنك ستحتاج إلى بدء المدخل الصغير. إذا كنت بحاجة إلى مساعدة، يُرجى مراجعة اضبط بوابة Edge Microgateway.

  3. في Apigee Edge، أنشئ منتج واجهة برمجة تطبيقات وبالإعدادات الإلزامية التالية: (يمكنك إدارة جميع الإعدادات الأخرى كما تريد):
    • عليك إضافة الخادم الوكيل edgemicro-auth إلى المنتج. هذا الخادم الوكيل تم نشره تلقائيًا عند تشغيل "edgemicro configure".
    • ويجب توفير مسار مورد. يقترح Apigee إضافة هذا المسار إلى المنتج: /**. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط سلوك مسار المورد. راجع أيضًا إنشاء واجهة برمجة تطبيقات المنتجات في مستندات Edge.
  4. في Apigee Edge، يمكنك إنشاء مطوِّر برامج أو استخدام مطوِّر حالي إذا كان أمنية. للحصول على المساعدة، يُرجى الاطّلاع على إضافة المطوّرين باستخدام واجهة مستخدم إدارة Edge.

  5. في Apigee Edge، أنشِئ تطبيقًا للمطوّرين. عليك إضافة منتج واجهة برمجة التطبيقات الذي أنشأناه للتو في التطبيق. للحصول على مساعدة، راجِع تسجيل تطبيق في Edge. إدارة واجهة المستخدم.
  6. في الجهاز حيث تم تثبيت Edge Microgateway، قم بتصدير ما يلي متغير البيئة بالقيمة "1".
    export EDGEMICRO_LOCAL_PROXY=1
  7. نفِّذ أمر start التالي:
    edgemicro start -o your_org -e your_environment -k your_key -s your_secret \
        -a local_proxy_name -v local_proxy_version -t target_url -b base_path

    المكان:

    • your_org هي مؤسستك في Apigee.
    • your_environment هي بيئة في مؤسستك.
    • your_key هو المفتاح الذي تم إرجاعه عند تشغيل الجهاز. edgemicro configure
    • "your_secret" هو السر الذي تم إرجاعه عند الجري edgemicro configure
    • local_proxy_name هو اسم الخادم الوكيل المحلي الذي سيتم إنشاؤه.
    • local_proxy_version هو رقم إصدار الخادم الوكيل.
    • target_url هو عنوان URL للهدف من الخادم الوكيل (الخدمة التي سينفّذها الخادم الوكيل الاتصال).
    • base_path هو المسار الأساسي للخادم الوكيل. يجب أن تبدأ هذه القيمة ببادئة شرطة مائلة. بالنسبة إلى مسار القاعدة الجذر، حدد فقط شرطة مائلة للأمام؛ على سبيل المثال، "/".

    على سبيل المثال:

    edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \
      -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \
      -t http://mocktarget.apigee.net -b /echo

اختبار الإعدادات

يمكنك اختبار إعداد الخادم الوكيل المحلي من خلال طلب نقطة نهاية الخادم الوكيل. على سبيل المثال: إذا حددت مسارًا أساسيًا لـ /echo، يمكنك استدعاء الخادم الوكيل على النحو التالي:

curl  http://localhost:8000/echo
{
  "error" : "missing_authorization",
  "error_description" : "Missing Authorization header"
}

أدى طلب البيانات الأولي من واجهة برمجة التطبيقات إلى ظهور خطأ بسبب عدم تقديم مفتاح صالح لواجهة برمجة التطبيقات. يمكنك العثور على المفتاح في تطبيق المطوِّر الذي أنشأته سابقًا افتح التطبيق في واجهة مستخدم Edge، انسخ مفتاح العميل، واستخدم هذا المفتاح على النحو التالي:

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

استخدام المزامن

يوضح هذا القسم كيفية استخدام المزامن، وهي ميزة اختيارية تحسين مرونة Edge Microgteway من خلال السماح لاسترداد بيانات الإعداد من Apigee Edge وكتابتها في قاعدة بيانات Redis محلية. مع تشغيل مثيل أداة المزامنة، أو مثيلات أخرى من Edge Microgateway تعمل على عُقد مختلفة استرداد تكوينها مباشرةً من قاعدة البيانات هذه.

تتوفّر ميزة المزامنة حاليًا للعمل مع Redis 5.0.x.

ما هو المزامن؟

يوفر المزامن مستوى من المرونة لـ Edge Microgateway. يساعد ذلك في ضمان أن كل مثيل من Edge Microgateway يستخدم نفس التهيئة، في حال انقطاع الإنترنت، يمكن بدء تشغيل مثيلات Edge Microgateway بشكل صحيح.

بشكل تلقائي، يجب أن تكون مثيلات Edge Microgateway قادرة على الاتصال بـ Apigee Edge من أجل استرداد بيانات الإعداد وتحديثها، مثل الخادم الوكيل لواجهة برمجة التطبيقات وإعدادات منتج واجهة برمجة التطبيقات. في حال انقطاع اتصال الإنترنت باستخدام Edge، يمكن أن تواصل مثيلات المدخل المصغّر لأنه يتم تخزين أحدث بيانات التهيئة مؤقتًا. ومع ذلك، فإن مثيلات البوابة الصغيرة الجديدة لا يمكن أن تبدأ بدون اتصال واضح. علاوة على ذلك، من الممكن بالنسبة إلى شبكة الإنترنت حدوث انقطاع في الخدمة ينتج عنه تشغيل مثيل واحد أو أكثر من مثيلات المدخل المصغّر مع الإعداد المعلومات غير المتزامنة مع المثيلات الأخرى.

توفر أداة مزامنة Edge Microgateway طريقة بديلة لآلية Edge Microgateway الافتراضية لاسترداد بيانات التكوين التي يحتاجونها لبدء ومعالجة حركة بيانات الخادم الوكيل لواجهة برمجة التطبيقات. تشمل بيانات الإعدادات التي يتم استردادها من المكالمات إلى Apigee Edge ما يلي: طلب jwk_public_keys، استدعاء jwt_public_key واستدعاء موسيقى التمهيد واستدعاء منتجات واجهة برمجة التطبيقات. تجعل أداة المزامنة من الممكن لجميع مدخلات Edge Microgate الحالات التي تعمل على عقد مختلفة لبدء التشغيل بشكل صحيح والبقاء متزامنًا حتى إذا انقطع اتصال الإنترنت بين Edge Microgateway وApigee Edge.

المزامن هو مثيل تم إعداده بشكل خاص لـ Edge Microgateway. الغرض الوحيد منه هو استطلاع Apigee Edge (التوقيت قابل للضبط)، واسترداد بيانات الإعداد، وكتابته إلى قاعدة بيانات Redis محلية. لا يمكن لمثيل أداة المزامنة نفسه معالجة الخادم الوكيل لواجهة برمجة التطبيقات حركة المرور. يمكن أن تتسبب الحالات الأخرى لـ Edge Microgateway التي تعمل على عُقد مختلفة لاسترداد بيانات الإعداد من قاعدة بيانات Redis بدلاً من Apigee الحافة. نظرًا لأن جميع مثيلات المدخل الصغير تسحب بيانات التهيئة من الخادم، يمكنهم بدء ومعالجة طلبات واجهة برمجة التطبيقات حتى في حالة اتصال اضطرابك.

تهيئة مثيل أداة المزامنة

إضافة الإعدادات التالية إلى ملف org-env/config.yaml من أجل تثبيت Edge Microgateway الذي تريد استخدامه كأداة المزامنة:

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true

على سبيل المثال:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true
Option الوصف
redisHost المضيف الذي يتم تشغيل مثيل Redis فيه. الإعدادات التلقائية: 127.0.0.1
redisPort منفذ مثيل Redis. الافتراضي: 6379
redisDb قاعدة بيانات Redis المطلوب استخدامها. القيمة التلقائية: 0
redisPassword كلمة مرور قاعدة البيانات.

أخيرًا، احفظ ملف التهيئة وابدأ مثيل Edge Microgateway. ستبدأ فحص Apigee Edge وتخزين بيانات التهيئة التي تم تنزيلها في قاعدة بيانات Redis.

تهيئة مثيلات طريق Edge Microgateway العادية

أثناء تشغيل أداة المزامنة، يمكنك ضبط عُقد Edge Microgateway إضافية لتشغيل حالات بوابة مصغّرة عادية تعالج زيارات خادم وكيل واجهة برمجة التطبيقات. ومع ذلك، يمكنك تهيئة هذه الحالات للحصول على بيانات التهيئة الخاصة بها من قاعدة بيانات Redis بدلاً من Apigee Edge.

إضافة الإعداد التالي إلى كل عقدة Edge Microgateway الإضافية ملف org-env/config.yaml. يُرجى العلم أنّ السمة synchronizerMode على 0. تضبط هذه الخاصية المثيل ليعمل كمثيل. مثيل Edge Microgateway الذي يعالج عدد زيارات الخادم الوكيل لواجهة برمجة التطبيقات، وسيحصل المثيل على بيانات التهيئة الخاصة به من قاعدة بيانات Redis.

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

على سبيل المثال:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

خصائص الإعدادات

تمت إضافة خصائص الإعداد التالية لإتاحة استخدام المزامن:

السمة القيم الوصف
edge_config.synchronizerMode 0 أو 1

إذا كانت 0 (الخيار التلقائي) Edge Microgateway تعمل في وضعها العادي.

إذا كان الرقم 1، ابدأ مثيل Edge Microgateway ليعمل كأداة مزامنة. في هذه الدورة، سيسحب المثيل بيانات الإعداد من Apigee Edge ويخزّنها في قاعدة بيانات محلية على Redis. لا يمكن لهذا المثيل معالجة طلبات الخادم الوكيل لواجهة برمجة التطبيقات؛ CANNOT TRANSLATE فإن الغرض الوحيد هو استقصاء Apigee Edge للحصول على بيانات الإعداد وكتابتها قاعدة البيانات. يجب عليك بعد ذلك تهيئة حالات بوابة مصغّرة أخرى للقراءة من قاعدة البيانات.

edge_config.redisBasedConfigCache صواب أم خطأ في حال اختيار القيمة "true"، يجلب مثيل Edge Microgateway بيانات الإعداد من قاعدة بيانات Redis بدلاً من Apigee Edge. يجب أن تكون قاعدة بيانات Redis هي نفسها التي تم ضبط المزامن على الكتابة إليها. إذا كانت قاعدة بيانات Redis غير متاحة أو إذا كانت قاعدة البيانات فارغة، سيبحث المدخل المصغّر عن cache-config.yaml حالي. لإعداده.

في حال التعيين على "false" (الإعداد التلقائي)، يجلب مثيل Edge Microgateway بيانات الإعداد من Apigee Edge كالمعتاد.

edgemicro.config_change_poll_interval الفاصل الزمني بالثواني تحدِّد هذه السياسة الفاصل الزمني للاستقصاء الخاص بالمزامن لسحب البيانات من Apigee Edge.

تهيئة عناوين URL لاستبعاد المكوّنات الإضافية

يمكنك تهيئة المدخل المصغّر لتخطي معالجة المكوّنات الإضافية عناوين URL المحددة. يمكنك ضبط عمليات "الاستبعاد" هذه عناوين URL عامة (لجميع المكوّنات الإضافية) أو لمكونات إضافية محددة.

على سبيل المثال:

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

في هذا المثال، لن تعالج المكوّنات الإضافية طلبات البيانات الواردة من خادم وكيل لواجهة برمجة التطبيقات باستخدام المسارَين /hello أو /proxy_one بالإضافة إلى ذلك، إنّ json2xml سيتم تخطي المكوّن الإضافي لواجهات برمجة التطبيقات التي تتضمّن /hello/xml في مسارها.

إعداد سمات الضبط باستخدام قيم متغيّرات البيئة

يمكنك تحديد متغيّرات البيئة باستخدام العلامات في الإعدادات. الملف. يتم استبدال علامات متغير البيئة المحددة بالبيئة الفعلية قيم المتغير. يتم تخزين البدائل في الذاكرة فقط ولا يتم تخزينها في النسخة الأصلية. ملفات التهيئة أو ذاكرة التخزين المؤقت.

في هذا المثال، يتم استبدال السمة key بقيمة السمة متغير البيئة TARGETS_SSL_CLIENT_KEY، وهكذا.

targets:
  - ssl:
      client:
        key: <E>TARGETS_SSL_CLIENT_KEY</E>
        cert: <E>TARGETS_SSL_CLIENT_CERT</E>
        passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>

في هذا المثال، يتم استخدام العلامة <n> للإشارة إلى قيمة عدد صحيح. إيجابية فقط يُسمَح باستخدام الأعداد الصحيحة.

edgemicro:
  port: <E><n>EMG_PORT</n></E>

في هذا المثال، يتم استخدام العلامة <b> للإشارة إلى قيمة منطقية ( هذا صحيح أو false).

quotas:
  useRedis: <E><b>EMG_USE_REDIS</b></E>