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

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

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

إذا كنت تتعلّم كيفية إنشاء خوادم وكيلة لواجهة برمجة التطبيقات، من المستحسن أن تبدأ بالموضوع. إنشاء واجهة برمجة تطبيقات بسيطة الخادم الوكيل.

في ما يلي أكثر الطرق شيوعًا لتعديل إعدادات الخادم الوكيل:

التطوير المحلي لإعدادات الخادم الوكيل

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

يصف هذا القسم كيفية استخدام واجهة المستخدم لتنزيل تهيئة حالية للخادم الوكيل، وتعديلها، ثم تحميله مرة أخرى إلى Edge ليتم نشره. يمكنك أيضًا استخدام أداة واجهة برمجة التطبيقات API لتنزيل إعداد خادم وكيل جديد ونشره (باستخدام fetchproxy deployproxy أوامر، على التوالي.)

لتعديل إعدادات خادم وكيل محليًا باستخدام واجهة المستخدم:

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

    لتوسيع ملف ZIP، يمكنك استخدام أداة مساعدة مثل unzip، كما يلي مثال يوضح:

    mkdir myappdir
    unzip ./my-app_app_rev3_2019_04_20.zip -d myappdir

    يجب أن يكون المحتوى الموسّع لملف ZIP مشابهًا للبنية الموضحة في بنية الخادم الوكيل لواجهة برمجة التطبيقات

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

    على سبيل المثال، لتفعيل مراقبة الصحة في الخادم الوكيل لواجهة برمجة التطبيقات، يمكنك تعديل ملف إعداد TargetEndpoint في دليل /apiproxy/targets/. الملف الافتراضي في هذا الدليل هو default.xml، ولكن قد تكون هناك ملفات بأسماء مختلفة في حال استخدامك الأهداف المشروطة.

    في هذه الحالة، إذا لم يكن ملف إعداد TargetEndpoint ودليله موجودين، وإنشائها.

  4. بعد الانتهاء من تعديل ملفات إعداد الخادم الوكيل، تأكَّد من حفظ التغييرات.
  5. إلى الدليل الجديد الذي أنشأته عند توسيع ملفات ZIP (جذر ملفات الإعداد الموسّعة).

    على سبيل المثال، في حال توسيع الملفات في دليل /myappdir، يمكنك التغيير إلى هذا الدليل، كما يبيِّن المثال التالي:

    cd myappdir

    يجب الانتقال إلى هذا الدليل قبل إعادة أرشفة ملفات إعداد الخادم الوكيل. لأنك لا تريد تضمين الدليل /myappdir في ملف ZIP. يجب أن يكون دليل المستوى الأعلى في ملف ZIP هو /apiproxy.

  6. عليك إعادة أرشفة ملفات إعداد الخادم الوكيل، بما في ذلك الملفات الجديدة أو التي تم تغييرها. يمكنك استخدام مثل zip، كما يبيِّن المثال التالي:
    zip my-new-proxy.zip -r .

    يجب أن يكون دليل المستوى الأعلى في ملف ZIP هو /apiproxy.

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

    تزيد Edge من رقم النسخة السابقة لإعدادات الخادم الوكيل الجديدة نيابةً عنك عند التحميل. بها.

  7. حمِّل إعدادات الخادم الوكيل الجديدة باستخدام واجهة مستخدم Edge. (في الخوادم الوكيلة لواجهة برمجة التطبيقات عرض، اختر المشروع > تحميل نسخة جديدة).

    إذا ظهرت لك رسالة خطأ مثل Bundle is invalid. Empty bundle.، تأكَّد من دليل المستوى الأعلى لملف ZIP هو /apiproxy. إذا لم يكن الأمر كذلك، فأعد أرشفة ملفات إعداد الخادم الوكيل من جذر الدليل الموسّع.

    بعد تحميل إعدادات الخادم الوكيل الجديدة، تزيد Edge من رقم المراجعة يعرضه في طريقة عرض ملخص النُسخ السابقة.

    لا ينشر Edge النسخة الجديدة نيابة عنك بعد تحميلها باستخدام واجهة المستخدم.

  8. انشر مراجعتك الجديدة.

لمزيد من المعلومات، يُرجى مراجعة دليل تعليمي: كيفية تنزيل خادم وكيل باستخدام واجهة المستخدم وواجهة برمجة تطبيقات الإدارة في منتدى Apigee:

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

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

الإعداد الأساسي إعدادات الضبط الأساسية للخادم الوكيل لواجهة برمجة التطبيقات. راجِع القاعدة الإعدادات.
إعداد نقطة نهاية الخادم الوكيل إعدادات اتصال HTTP الوارد (من طلب التطبيقات إلى Apigee Edge)، اطلب ومسارات الردود ومرفقات السياسة راجِع ProxyEndpoint.
ضبط نقطة النهاية المستهدفة إعدادات اتصال HTTP الصادر (من Apigee Edge إلى خدمة الخلفية) وتدفقات الطلبات والاستجابة، ومرفقات السياسة. راجِع TargetEndpoint.
زهور مسارات الطلب والاستجابة لـ ProxyEndpoint وTargetEndpoint على السياسات التي يمكن مرفق. راجِع التدفق.
السياسات ملفات إعداد بتنسيق XML تتوافق مع مخططات سياسة Apigee Edge. عرض السياسات:
المراجع النصوص البرمجية وملفات JAR وملفات WebRTC المشار إليها من خلال السياسات لتنفيذ منطق مخصص. عرض الموارد:

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

يتم تحديد المكوّنات في الجدول أعلاه من خلال ملفات الإعداد في ما يلي: بنية الدليل:

تعرض بنية الدليل التي يكون فيها apiproxy الجذر. ضمن
    دليل apiproxy هو أدلة السياسات والخوادم الوكيلة والموارد والأهداف،
    weatherapi.xml.

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

يشرح هذا القسم ملفات الإعداد وبنية الدليل لخادم وكيل واجهة برمجة التطبيقات.

الإعداد الأساسي

/apiproxy/weatherapi.xml

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

نموذج الضبط:

<APIProxy name="weatherapi">
</APIProxy>

عناصر الإعداد الأساسية

الاسم الوصف تلقائي مطلوب؟
APIProxy
name اسم الخادم الوكيل لواجهة برمجة التطبيقات، والذي يجب أن يكون فريدًا داخل مؤسسة الشخصيات يُسمح لك باستخدامه في الاسم على ما يلي: A-Za-z0-9_- لا ينطبق نعم
revision رقم النسخة السابقة لإعداد الخادم الوكيل لواجهة برمجة التطبيقات. لا تحتاج إلى تعيين رقم النسخة السابقة، نظرًا لأن Apigee Edge تتتبّع تلقائيًا النسخة الحالية من واجهة برمجة التطبيقات الخادم الوكيل. لا ينطبق لا
ConfigurationVersion إصدار مخطط ضبط الخادم الوكيل لواجهة برمجة التطبيقات الذي يتوافق معه الخادم الوكيل لواجهة برمجة التطبيقات هذا تشير رسالة الأشكال البيانية هي القيمة المسموح بها فقط حاليًا هيMajorVersion 4 وsmallVersion 0. وقد يكون هذا الإعداد في المستقبل لتمكين تطور تنسيق خادم وكيل واجهة برمجة التطبيقات. 4.0 لا
Description وصف نصي للخادم الوكيل لواجهة برمجة التطبيقات. في حال توفّره، سيتم عرض الوصف باللغة واجهة مستخدم إدارة الحافة. لا ينطبق لا
DisplayName اسم سهل الاستخدام قد يختلف عن السمة name إعداد الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا
Policies هذه قائمة بالسياسات في الدليل /policies للخادم الوكيل لواجهة برمجة التطبيقات هذا. وسوف عادةً ما يظهر هذا العنصر فقط عند إنشاء الخادم الوكيل لواجهة برمجة التطبيقات باستخدام واجهة مستخدم إدارة Edge. هذا مجرد "بيان" مصمم، يهدف إلى توفير رؤية حول محتويات الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا
ProxyEndpoints قائمة بنقاط ProxyEndpoints في دليل /proxies للخادم الوكيل لواجهة برمجة التطبيقات هذا إِنْتَ وعادةً ما يتمكنون من رؤية هذا العنصر فقط عند إنشاء خادم وكيل واجهة برمجة التطبيقات باستخدام المتصفح Edge إدارة واجهة المستخدم. هذا مجرد "بيان" صُمِّمت لتوفير رؤية محتويات الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا
Resources قائمة بالموارد (JavaScript وPython وJava وWava) في /resources دليل الخادم الوكيل لواجهة برمجة التطبيقات هذا. لن ترى عادةً هذا العنصر إلا عندما كان خادم وكيل واجهة برمجة التطبيقات الذي تم إنشاؤه باستخدام واجهة مستخدم إدارة Edge. هذا مجرد "بيان" الإعداد، مصمم من أجل توفير رؤية لمحتوى الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا
Spec تحدد مواصفات OpenAPI المرتبطة بالخادم الوكيل لواجهة برمجة التطبيقات. القيمة يتم تعيينها إلى عنوان URL أو على مسار في مخزن المواصفات.

ملاحظة: يتوفّر متجر المواصفات في تجربة New Edge. فقط. للحصول على مزيد من المعلومات حول مخزن المواصفات، اطلع على الإدارة والمشاركة المواصفات.
لا ينطبق لا
TargetServers قائمة بخوادم TargetServer المُشار إليها في أي نقطة نهاية مستهدفة للخادم الوكيل لواجهة برمجة التطبيقات هذا. وسوف عادةً ما يظهر هذا العنصر فقط عند إنشاء الخادم الوكيل لواجهة برمجة التطبيقات باستخدام واجهة مستخدم إدارة Edge. هذا مجرد "بيان" مصمم، يهدف إلى توفير رؤية حول محتويات الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا
TargetEndpoints قائمة بنقاط النهاية المستهدفة في دليل /targets للخادم الوكيل لواجهة برمجة التطبيقات هذا. إِنْتَ وعادةً ما يتمكنون من رؤية هذا العنصر فقط عند إنشاء خادم وكيل واجهة برمجة التطبيقات باستخدام المتصفح Edge إدارة واجهة المستخدم. هذا مجرد "بيان" صُمِّمت لتوفير رؤية محتويات الخادم الوكيل لواجهة برمجة التطبيقات. لا ينطبق لا

ProxyEndpoint

توضح الصورة التالية مسار الطلب/الاستجابة:

تعرض عميلاً يستدعي HTTP
  خدمة ما. يمر الطلب بنقطة نهاية الخادم الوكيل ثم نقطة النهاية المستهدفة قبل أن يتم
  معالجة البيانات من خلال خدمة HTTP. تمر الاستجابة عبر النهاية المستهدفة ثم
  بنقطة نهاية الخادم الوكيل قبل إرجاعه إلى العميل.

/apiproxy/proxies/default.xml

تحدِّد إعدادات ProxyEndpoint الواجهة الواردة (الموجَّهة للعميل) لإحدى واجهات برمجة التطبيقات. الخادم الوكيل. عند ضبط نقطة نهاية ProxyEndpoint، يتم إعداد ضبط للشبكة يحدد كيفية استدعاء تطبيقات العميل ("التطبيقات") لواجهة برمجة التطبيقات التي تم إنشاؤها باستخدام خادم وكيل.

سيتم تخزين النموذج التالي لإعداد ProxyEndpoint ضمن /apiproxy/proxies:

<ProxyEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
    <VirtualHost>default</VirtualHost>
  </HTTPProxyConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

عناصر الضبط المطلوبة في ProxyEndpoint الأساسية هي:

إعداد نقطة نهاية الخادم الوكيل العناصر

الاسم الوصف تلقائي مطلوب؟
ProxyEndpoint
name اسم ProxyEndpoint يجب أن يكون فريدًا ضمن إعداد الخادم الوكيل لواجهة برمجة التطبيقات، في حال (في حالات نادرة) يتم تحديد نقاط ProxyEndpoints متعددة. الأحرف المسموح لك باستخدامها في الاسم على ما يلي: A-Za-z0-9._\-$ %. لا ينطبق نعم
PreFlow تحدّد هذه السمة السياسات في مسار PreFlow لأحد الطلبات أو الردود. لا ينطبق نعم
Flows
تحدّد السياسات في التدفقات الشرطية للطلب أو الاستجابة.
لا ينطبق نعم
PostFlow
تحدِّد هذه السياسة السياسات في مسار PostFlow لطلب أو ردّ.
لا ينطبق نعم
HTTPProxyConnection تُحدِّد عنوان الشبكة ومسار معرّف الموارد المنتظم (URI) المرتبط بالخادم الوكيل لواجهة برمجة التطبيقات.
BasePath

سلسلة مطلوبة تحدد بشكلٍ فريد مسار معرّف الموارد المنتظم (URI) الذي تستخدمه Apigee Edge للتوجيه الرسائل الواردة إلى الخادم الوكيل لواجهة برمجة التطبيقات المناسب.

BasePath هو جزء من عنوان URI (على سبيل المثال /weather) ملحق بـ عنوان URL الأساسي لخادم وكيل لواجهة برمجة التطبيقات (على سبيل المثال، http://apifactory-test.apigee.net). يجب أن يكون BasePath فريدًا داخل بيئة. يتم التحقّق من التميّز عند استخدام خادم وكيل لواجهة برمجة التطبيقات أو استيراده.

استخدام حرف بدل في المسارات الأساسية

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

ملاحظة مهمة: لا تتيح Apigee استخدام حرف بدل "*". كالأول عنصر مسار أساسي. مثلاً، لا يتوفّر ذلك: /*/search. بدء المسار الأساسي بعلامة "*" إلى حدوث أخطاء غير متوقعة بسبب الطريقة التي تحدد المسارات الصالحة.

/ نعم
VirtualHost

تعمل هذه السياسة على ربط خادم وكيل لواجهة برمجة التطبيقات بعناوين URL أساسية محدَّدة لإحدى البيئات. مضيف VirtualHost هو باسم تهيئة معينة تحدد عنوان URL واحدًا أو أكثر في إحدى البيئات.

تحدد VirtualHosts المحددة المحددة لـ ProxyEndpoint النطاقات والمنافذ على التي يتم الكشف عنها الخادم الوكيل لواجهة برمجة التطبيقات، وبالتالي عنوان URL الذي تستخدمه التطبيقات لاستدعاء واجهة برمجة تطبيقات الخادم الوكيل.

بشكل افتراضي، يتم تحديد مضيفين VirtualHosts للبيئة: "default" وsecure" يمكن للمؤسسة أيضًا تحديد النطاقات. للتأكد من أن الخادم الوكيل لواجهة برمجة التطبيقات غير متاح سوى عبر HTTPS فقط، على سبيل المثال، اضبط VirtualHost في HTTPProxyConnection إلى secure.

التلقائية لا
Properties يمكن تحديد مجموعة من إعدادات تهيئة HTTP الاختيارية كخصائص <ProxyEndpoint> لا ينطبق لا
FaultRules
تحدد هذه السياسة كيفية تفاعل ProxyEndpoint مع خطأ. تحدد قاعدة الخطأ اثنين العناصر:
  • شرط يحدد الخطأ المراد التعامل معه استنادًا إلى الخطأ المحدد مسبقًا الفئة أو الفئة الفرعية أو اسم الخطأ
  • واحدة أو أكثر من السياسات التي تحدد سلوك قاعدة الخطأ الشرط المقابل

يُرجى الاطّلاع على معالجة الأخطاء.

لا ينطبق لا
DefaultFaultRule

معالجة أي أخطاء (النظام أو وسيلة النقل أو الرسائل أو السياسة) غير واضحة التعامل معها من خلال قاعدة خطأ أخرى.

يُرجى الاطّلاع على معالجة الأخطاء.

لا ينطبق لا
RouteRule تُحدِّد وجهة رسائل الطلبات الواردة بعد معالجتها بواسطة مسار طلب نقطة نهاية الخادم الوكيل عادةً ما تشير RouteRule إلى نقطة نهاية مستهدَفة مسماة ولكن يمكنه أيضًا أن يشير مباشرةً إلى عنوان URL.
Name السمة المطلوبة التي توفّر اسمًا لقاعدة RouteRule. الشخصيات التي في الاسم، يُسمح بما يلي: A-Za-z0-9._\-$ %. بالنسبة على سبيل المثال، Cat2 %_ هو اسم قانوني. لا ينطبق نعم
Condition عبارة شرطية اختيارية تُستخدم للتوجيه الديناميكي في وقت التشغيل. الشرطي تُعد RouteRules مفيدة، على سبيل المثال، لتفعيل التوجيه المستند إلى المحتوى لدعم الخلفية. للإصدارات. لا ينطبق لا
TargetEndpoint

سلسلة اختيارية تحدِّد إعدادات TargetEndpoint المُسمّاة. اسم تشير TargetEndpoint إلى أي نقطة نهاية مستهدفة محدّدة في الخادم الوكيل لواجهة برمجة التطبيقات نفسه ضمن دليل /targets).

من خلال تسمية TargetEndpoint، أنت تشير إلى المكان الذي يجب إعادة توجيه رسائل الطلبات إليه. بعد المعالجة بواسطة مسار طلبات ProxyEndpoint. لاحظ أن هذا أمر اختياري الإعداد.

قد تطلب نقطة نهاية الخادم الوكيل عنوان URL مباشرةً. على سبيل المثال، مورد JavaScript أو Java، يؤدي دور عميل HTTP، قد يؤدي المهمة الأساسية TargetEndpoint هو اختصار لإعادة توجيه الطلبات إلى خدمة خلفية.

لا ينطبق لا
عنوان URL سلسلة اختيارية تحدد عنوان شبكة صادر يتم استدعاءه بواسطة ProxyEndpoint، تجاوز أي إعدادات لنقطة نهاية مستهدَفة قد يتم تخزينها ضمن /targets لا ينطبق لا

كيفية ضبط RouteRules

يشير عنصر TargetEndpoint يُسمى إلى ملف إعداد ضمن /apiproxy/targets إلى الذي يعيد RouteRule توجيه الطلب بعد معالجته بواسطة ProxyEndpoint.

على سبيل المثال، تشير RouteRule التالية إلى الإعدادات /apiproxy/targets/myTarget.xml:

<RouteRule name="default">
  <TargetEndpoint>myTarget</TargetEndpoint>
</RouteRule>

استدعاء عنوان URL المباشر

يمكن أيضًا لـ ProxyEndpoint استدعاء خدمة خلفية مباشرةً. يتجاوز الاستدعاء المباشر لعنوان URL أي تسمى إعداد TargetEndpoints ضمن /apiproxy/targets). لهذا السبب، TargetEndpoint هو إعداد اختياري للخادم الوكيل لواجهة برمجة التطبيقات، مع أنّه في الواقع استدعاء مباشر من ProxyEndpoint

على سبيل المثال، تقوم RouteRule التالي باستدعاء HTTP إلى http://api.mycompany.com/v2

<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL> 
</RouteRule>

المسارات الشرطية

يمكن ربط سلسلة RouteRules لدعم التوجيه الديناميكي في وقت التشغيل. يمكن أن تكون الطلبات الواردة يتم توجيهها إلى إعدادات TargetEndpoint مباشرةً أو إلى مزيج من الاثنين التي تستند إلى رؤوس HTTP أو محتوى الرسالة أو معلمات طلب البحث أو المعلومات السياقية مثل وقت واليوم واللغة وما إلى ذلك

تعمل RouteRules الشرطية مثل العبارات الشرطية الأخرى على Apigee Edge. راجِع مرجع الشروط ومرجع المتغيّرات.

على سبيل المثال، تقيّم مجموعة RouteRule التالية أولاً الطلب الوارد للتحقُّق قيمة عنوان HTTP. في حال كان عنوان HTTP routeTo يتضمّن القيمة TargetEndpoint1، تتم إعادة توجيه الطلب إلى TargetEndpoint المسماة. TargetEndpoint1 إذا لم يكن الأمر كذلك، ستتم إعادة توجيه الطلب الوارد إلى http://api.mycompany.com/v2

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL>
</RouteRule>

مسارات فارغة

يمكن تحديد RouteRule الفارغة لدعم السيناريوهات التي لا تتوفّر فيها رسالة الطلب. يجب إعادة توجيهها إلى TargetEndpoint. ويفيد ذلك عندما ينفذ ProxyEndpoint جميع المعالجة اللازمة، على سبيل المثال باستخدام JavaScript لاستدعاء خدمة خارجية أو واسترداد البيانات من بحث إلى خدمات واجهة برمجة التطبيقات" مخزن المفتاح/القيمة.

على سبيل المثال، يحدد ما يلي مسارًا فارغًا:

<RouteRule name="GoNowhere"/>

يمكن أن تكون المسارات الفارغة الشرطية مفيدة. في المثال التالي، يتم ضبط مسار فارغ على التنفيذ عندما يتضمّن عنوان HTTP request.header.X-DoNothing قيمة أخرى غير null

<RouteRule name="DoNothingOnDemand">
  <Condition>request.header.X-DoNothing != null</Condition>
</RouteRule>

تذكَّر أنّه يمكن وضع تسلسل RouteRules، وبالتالي يكون المسار الفارغ المشروط عادةً واحدًا. مكون من مجموعة من قواعد RouteRules وهي مُصمَّمة لدعم التوجيه المشروط.

يساعد الاستخدام العملي لمسار فارغ مشروط في التخزين المؤقت. باستخدام القيمة من المتغير الذي تم ضبطه من خلال سياسة ذاكرة التخزين المؤقت، يمكنك ضبط خادم وكيل لواجهة برمجة التطبيقات لتنفيذ مسار فارغ عند عرض إدخال من ذاكرة التخزين المؤقت.

<RouteRule name="DoNothingUnlessTheCacheIsStale">
  <Condition>lookupcache.LookupCache-1.cachehit is true</Condition>
</RouteRule>

TargetEndpoint

تعرض عميلاً يستدعي HTTP
  خدمة ما. يمر الطلب بنقطة نهاية الخادم الوكيل ثم نقطة النهاية المستهدفة قبل أن يتم
  معالجة البيانات من خلال خدمة HTTP. تمر الاستجابة عبر النهاية المستهدفة ثم
  بنقطة نهاية الخادم الوكيل قبل إرجاعه إلى العميل.

أما TargetEndpoint، فهو مكافئ صادر لـ ProxyEndpoint. تعمل TargetEndpoint إلى خدمة خلفية أو واجهة برمجة تطبيقات -- حيث يرسل الطلبات ويتلقى الاستجابات.

لا يُشترَط أن يحتوي خادم وكيل لواجهة برمجة التطبيقات على أي نقاط نهاية مستهدَفة. يمكن ضبط ProxyEndpoints لاستدعاء عناوين URL مباشرةً. عادةً ما يحتوي الخادم الوكيل لواجهة برمجة التطبيقات الذي لا يتضمّن TargetEndpoints على نقطة نهاية وكيل يتصل مباشرةً بخدمة خلفية، أو تم إعداده لاستدعاء خدمة ما باستخدام Java أو JavaScript.

إعدادات TargetEndpoint

/targets/default.xml

تحدد TargetEndpoint الاتصال الصادر من Apigee Edge إلى خدمة أخرى أو المصدر.

وفي ما يلي نموذج لضبط نقطة النهاية المستهدفة:

<TargetEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <SSLInfo/>
  </HTTPTargetConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <ScriptTarget/>
  <LocalTargetConnection/>
</TargetEndpoint>

إعدادات TargetEndpoint العناصر

ويمكن لنقطة النهاية المستهدفة استدعاء أي هدف بإحدى الطرق التالية:

  • HTTPTargetConnection لطلبات HTTP(S)
  • LocalTargetConnection لسلسلة محلية من خادم وكيل إلى خادم.
  • ScriptTarget لاستدعاءات المكالمات إلى شبكة Edge مستضافة نص Node.js البرمجي

يجب إعداد حقل واحد فقط من هذه العناصر في TargetEndpoint.

الاسم الوصف تلقائي مطلوب؟
TargetEndpoint
name اسم TargetEndpoint الذي يجب أن يكون فريدًا داخل الخادم الوكيل لواجهة برمجة التطبيقات التكوين. يُستخدم اسم TargetEndPoint في ProxyEndpoint RouteRule من أجل الطلبات المباشرة للمعالجة الصادرة. الأحرف المسموح لك باستخدامها في الاسم على ما يلي: A-Za-z0-9._\-$ %. لا ينطبق نعم
PreFlow تحدّد هذه السمة السياسات في مسار PreFlow لأحد الطلبات أو الردود. لا ينطبق نعم
Flows
تحدّد السياسات في التدفقات الشرطية للطلب أو الاستجابة.
لا ينطبق نعم
PostFlow
تحدِّد هذه السياسة السياسات في مسار PostFlow لطلب أو ردّ.
لا ينطبق نعم
HTTPTargetConnection

مع عناصره الفرعية، تحدد مدى الوصول إلى مورد الخلفية عبر HTTP.

إذا كنت تستخدم HTTPTargetConnection، لا تضبط أنواعًا أخرى من الاتصالات المستهدفة. (ScriptTarget أو LocalTargetConnection).

URL تحدِّد هذه السياسة عنوان الشبكة لخدمة الخلفية التي تتم إعادة توجيه TargetEndpoint إليها. لطلب رسائل. لا ينطبق لا
LoadBalancer

يحدد واحدًا أو أكثر من تهيئات TargetServer المسماة. الخادم المستهدف المُسمّى يمكن استخدام الإعدادات لموازنة التحميل من خلال تحديد 2 أو أكثر من إعدادات نقطة النهاية الاتصالات.

يمكنك أيضًا استخدام TargetServers لفصل إعدادات الخادم الوكيل لواجهة برمجة التطبيقات عن عناوين URL لنقاط نهاية خدمة الخلفية.

راجع تحميل تحقيق التوازن بين خوادم الخلفية

لا ينطبق لا
Properties يمكن تحديد مجموعة من إعدادات تهيئة HTTP الاختيارية كخصائص <TargetEndpoint> لا ينطبق لا
SSLInfo بشكل اختياري، يمكنك تحديد إعدادات TLS/SSL على TargetEndpoint للتحكّم في TLS/SSL. الاتصال بين الخادم الوكيل لواجهة برمجة التطبيقات والخدمة المستهدفة. يُرجى الاطِّلاع على إعداد نقطة النهاية المستهدفة لطبقة النقل الآمنة/طبقة المقابس الآمنة. لا ينطبق لا
LocalTargetConnection باستخدام عناصرها الفرعية، تحدد موردًا ليتم الوصول إليه محليًا، مع تجاوز الشبكة مثل موازنة التحميل ومعالِجات الرسائل.

لتحديد المورد المستهدف، قم بتضمين إما عنصر APIProxy الثانوي (مع ProxyEndpoint) أو عنصر المسار الفرعي

لمزيد من المعلومات، يُرجى الاطّلاع على الخوادم الوكيلة لواجهة برمجة التطبيقات Chaining API. معًا.

إذا كنت تستخدم LocalTargetConnection، لا تضبط أنواعًا أخرى من الاتصالات المستهدفة. (HTTPTargetConnection أو ScriptTarget).

APIProxy تحدِّد هذه السياسة اسم الخادم الوكيل لواجهة برمجة التطبيقات لاستخدامه كهدف للطلبات. الخادم الوكيل المستهدف أن تكون في نفس المؤسسة والبيئة التي يوجد بها الخادم الوكيل الذي يرسل الطلبات. هذا هو كبديل لاستخدام عنصر المسار. لا ينطبق لا
ProxyEndpoint يتم استخدامه مع APIProxy لتحديد اسم ProxyEndpoint للخادم الوكيل المستهدَف. لا ينطبق لا
Path تحدِّد مسار نقطة النهاية للخادم الوكيل لواجهة برمجة التطبيقات من أجل استخدامه كهدف للطلبات. الهدف يجب أن يكون الخادم الوكيل في نفس المؤسسة والبيئة مثل الخادم الوكيل الذي يرسل الطلبات. هذا النمط كخيار بديل لاستخدام واجهة برمجة التطبيقات API. لا ينطبق لا
FaultRules
تحدد هذه السياسة كيفية تفاعل نقطة النهاية المستهدفة مع خطأ. تحدد قاعدة الخطأ اثنين العناصر:
  • شرط يحدد الخطأ المراد التعامل معه استنادًا إلى الخطأ المحدد مسبقًا الفئة أو الفئة الفرعية أو اسم الخطأ
  • واحدة أو أكثر من السياسات التي تحدد سلوك قاعدة الخطأ الشرط المقابل

يُرجى الاطّلاع على معالجة الأخطاء.

لا ينطبق لا
DefaultFaultRule

معالجة أي أخطاء (النظام أو وسيلة النقل أو الرسائل أو السياسة) غير واضحة التعامل معها بواسطة FaultRule الأخرى.

يُرجى الاطّلاع على معالجة الأخطاء.

لا ينطبق لا
ScriptTarget
ResourceURL

يعرّف نوع المورد (عقدة) واسم النص البرمجي Node.js الرئيسي الذي تنفِّذ وظيفة TargetEndpoint.

<ResourceURL>node://server.js</ResourceURL>

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

إذا كنت تستخدم ScriptTarget، لا تضبط أنواعًا أخرى من الاتصالات المستهدفة. (HTTPTargetConnection أو LocalTargetConnection).

لا ينطبق نعم
EnvironmentVariable

يمكنك اختياريًا تمرير متغيرات البيئة إلى النص البرمجي الرئيسي في Node.js.

راجع التعرّف على الحافة إتاحة وحدات Node.js

لا ينطبق لا
Arguments

يمكنك اختياريًا تمرير الوسيطات إلى نص Node.js البرمجي الرئيسي.

راجع التعرّف على الحافة إتاحة وحدات Node.js

لا ينطبق لا

إعداد نقطة النهاية المستهدفة لطبقة النقل الآمنة/طبقة المقابس الآمنة

غالبًا ما تحتاج نقاط النهاية المستهدفة إلى إدارة اتصالات HTTPS باستخدام خلفية غير متجانسة. البنية الأساسية. لهذا السبب، يتم دعم عدد من إعدادات تهيئة TLS/SSL.

TLS/SSL عناصر ضبط نقطة النهاية المستهدفة

الاسم الوصف تلقائي مطلوب؟
SSLInfo
Enabled يشير إلى ما إذا تم تفعيل TLS/SSL لنقطة النهاية. القيمة التلقائية هي true إذا كان <URL> يحدد بروتوكول HTTPS، وfalse إذا كان <URL> يحدد HTTP. صحيح إذا كان <URL> يحدد HTTPS لا
TrustStore ملف تخزين مفاتيح يحتوي على شهادات خادم موثوقة. لا ينطبق لا
ClientAuthEnabled إعداد يشغّل مصادقة العملاء الصادر (بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) ثنائية الاتجاه) خطأ لا
KeyStore ملف تخزين مفاتيح يحتوي على مفاتيح خاصة تُستخدم لمصادقة العميل الصادر لا ينطبق نعم (إذا كانت قيمة ClientAuthEnabled صحيحة)
KeyAlias الاسم المستعار للمفتاح الخاص بالمفتاح الخاص المستخدم في مصادقة العميل الصادر لا ينطبق نعم (إذا كانت قيمة ClientAuthEnabled صحيحة)
Ciphers

الرموز المتوافقة مع بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) الصادرة. إذا لم يتم تحديد أي رموز، فإن جميع الرموز المتاحة لـ JVM.

لتقييد التشفير، أضف العناصر التالية التي تسرد الرموز المتوافقة:

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
لا ينطبق لا
Protocols

البروتوكولات المعتمدة لطبقة النقل الآمنة (TLS)/طبقة المقابس الآمنة (SSL) الصادرة. إذا لم يتم تحديد أي بروتوكولات، فحينئذٍ يتم تحديد جميع المسموح بها من البروتوكولات المتاحة لـ JVM.

لتقييد البروتوكولات، أضِف العناصر التالية التي تسرد البروتوكولات المتوافقة:

<Protocols>
 <Protocol>TLSv1.1</Protocol>
 <Protocol>TLSv1.2</Protocol>
</Protocols>
لا ينطبق لا
CommonName

إذا تم تحديد قيمة، يتم التحقّق من صحة الاسم الشائع للشهادة الهدف بناءً عليها. هذه القيمة صالحة فقط لإعدادات ضبط TargetEndpoint وTargetServer. لا صالحة لتهيئات VirtualHost.

بشكلٍ تلقائي، تتم مطابقة القيمة المحدّدة تمامًا مع الاسم الشائع للشهادة الهدف. على سبيل المثال، استخدام *.myhost.com كقيمة لـ <CommonName> سوف تطابق فقط التحقق من صحة اسم المضيف المستهدف إذا تم تحديد القيمة الدقيقة *.myhost.com كاسم شائع في الشهادة المستهدفة.

اختياريًا، يمكن في Apigee تنفيذ المطابقة باستخدام أحرف البدل باستخدام السمة wildcardMatch.

على سبيل المثال، ستتم مطابقة اسم شائع محدّد على أنه abc.myhost.com في شهادة هدف والتحقّق من صحته. إذا كانت <CommonName> على النحو التالي:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

لا ينطبق لا

نموذج TargetEndpoint مع تفعيل مصادقة العميل الصادر

<TargetEndpoint name="default">
  <HttpTargetConnection>
        <URL>https://myservice.com</URL>
    <SSLInfo>
      <Enabled>true</Enabled>
      <ClientAuthEnabled>true</ClientAuthEnabled>
      <KeyStore>myKeystore</KeyStore>
      <KeyAlias>myKey</KeyAlias>
      <TrustStore>myTruststore</TrustStore>
    </SSLInfo>
  </HttpTargetConnection>
</TargetEndpoint>

للحصول على تعليمات تفصيلية، يُرجى الاطّلاع على ضبط بروتوكول أمان طبقة النقل (TLS). من Edge إلى الخلفية (السحابة الإلكترونية والسحابة الإلكترونية الخاصة).

استخدام متغيرات التدفق لضبط قيم TLS/SSL ديناميكيًا

يمكنك أيضًا ضبط تفاصيل بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة بشكل ديناميكي لتلبية متطلبات بيئة التشغيل المرنة. على سبيل المثال، إذا كان الخادم الوكيل يتصل باثنين من الأهداف المحتملة المختلفتين (هدف اختباري يمكنك جعل خادم وكيل واجهة برمجة التطبيقات يكتشف البيئة التي الاتصال وضبط المراجع ديناميكيًا على ملف تخزين المفاتيح والثقة المناسبَين. ما يلي: تشرح مقالة منتدى Apigee هذا السيناريو بمزيد من التفاصيل وتوفّر واجهة برمجة تطبيقات قابلة للنشر. أمثلة على الخادم الوكيل: https://community.apigee.com/articles/21424/dynamic-sslinfo-for-targetendpoint-using-variable.html.

في المثال التالي، طريقة ضبط العلامة <SSLInfo> في ضبط TargetEndpoint، يمكن تقديم القيم في وقت التشغيل، على سبيل المثال، باستخدام Java وسيلة شرح أو سياسة JavaScript أو سياسة "تعيين رسالة" استخدام أي متغيرات للرسالة سيحتوي على القيم التي تريد تعيينها.

يُسمح باستخدام المتغيرات في العناصر التالية فقط.

<SSLInfo>
    <Enabled>{myvars.ssl.enabled}</Enabled>
    <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled>
    <KeyStore>{myvars.ssl.keystore}</KeyStore>
    <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias>
    <TrustStore>{myvars.ssl.trustStore}</TrustStore>
</SSLInfo>

استخدام مراجع لضبط قيم بروتوكول أمان طبقة النقل (TLS) وطبقة المقابس الآمنة (SSL) ديناميكيًا

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

لمزيد من المعلومات، يُرجى الاطِّلاع على تحديث بروتوكول أمان طبقة النقل (TLS) الشهادة.

ومع ذلك، يمكنك اختياريًا ضبط TargetEndpoint لاستخدام مرجع في ملف تخزين المفاتيح أو ملف تخزين الثقة بدلاً من ذلك. تتمثل ميزة استخدام المرجع في إمكانية تحديث الرجوع إلى ملف تخزين مفاتيح مختلف أو مخزن ثقة لتحديث شهادة بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة بدون الاضطرار إلى إعادة تشغيل معالجات الرسائل.

على سبيل المثال، في ما يلي نقطة نهاية مستهدفة تستخدم مرجعًا لملف تخزين المفاتيح:

<SSLInfo> 
    <Enabled>true</Enabled> 
    <ClientAuthEnabled>false</ClientAuthEnabled> 
    <KeyStore>ref://keystoreref</KeyStore> 
    <KeyAlias>myKeyAlias</KeyAlias> 
</SSLInfo>

استخدِم طلب POST التالي من واجهة برمجة التطبيقات لإنشاء المرجع المُسمّى keystoreref:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

يحدد المرجع اسم ملف تخزين المفاتيح ونوعه.

يمكنك استخدام طلب GET API التالي لعرض المرجع:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

لتغيير المرجع لاحقًا إلى ملف تخزين مفاتيح مختلف، فإن التأكد من أن الاسم المستعار نفس الاسم، استخدم استدعاء PUT التالي:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

TargetEndpoint من خلال موازنة الحمل المستهدَف

تتيح TargetEndpoints موازنة التحميل على مستوى عدة خوادم TargetServers مُسمّاة باستخدام ثلاث منصات تحميل. خوارزميات تحقيق التوازن.

للحصول على تعليمات تفصيلية، يُرجى الاطّلاع على مقالة موازنة التحميل في الخلفية. الخوادم.

السياسات

يتضمّن الدليل /policies في الخادم الوكيل لواجهة برمجة التطبيقات جميع السياسات المتاحة المرفق بالتدفقات في الخادم الوكيل لواجهة برمجة التطبيقات.

عناصر ضبط السياسة

الاسم الوصف تلقائي مطلوب؟
Policy
name

الاسم الداخلي للسياسة. يتم فرض قيود على الأحرف التي يمكنك استخدامها في الاسم إلى: A-Za-z0-9._\-$ %. ومع ذلك، تفرض واجهة مستخدم إدارة Edge المزيد مثل الإزالة التلقائية للأحرف غير الأبجدية الرقمية.

يمكنك بشكل اختياري استخدام العنصر <DisplayName> لتصنيف في محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق نعم
enabled

اضبط القيمة على true لفرض السياسة.

ضبط على false على "إيقاف" السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح لا
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا هو السلوك المتوقع لمعظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ لا
async

ملاحظة: لا تؤدي هذه السمة إلى تنفيذ السياسة بشكل غير متزامن. في معظم الحالات، يمكنك ترك هذا الإعداد على الإعداد التلقائي وهو false.

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

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

خطأ لا

مرفق السياسة

توضِّح الصورة التالية تسلسل تنفيذ مسارات الخادم الوكيل لواجهة برمجة التطبيقات:

تعرض عميلاً يستدعي خدمة HTTP. يصادف الطلب
  ProxyEndpoint وTargetEndpoint، يحتوي كل منهما على خطوات تؤدي إلى تشغيل السياسات بعد
  وترجع خدمة HTTP الاستجابة، وتتم معالجة الاستجابة من خلال TargetEndpoint ثم
  ProxyEndpoing قبل إرجاعه إلى العميل كما هو الحال مع الطلب، تتم معالجة الاستجابة
  والسياسات ضمن الخطوات.

كما هو موضح أعلاه:

يتم إرفاق السياسات كخطوات لمعالجة التدفقات. يُستخدم اسم السياسة للأغراض التالية: الإشارة إلى السياسة التي سيتم فرضها كخطوة معالجة تنسيق مرفق السياسة هو ما يلي:

<Step><Name>MyPolicy</Name></Step>

يتم فرض السياسات بالترتيب الذي يتم إرفاقها به بالتدفق. على سبيل المثال:

<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>

إعداد مرفقات السياسة العناصر

الاسم الوصف تلقائي مطلوب؟
Step
Name اسم السياسة التي سيتم تنفيذها من خلال تعريف الخطوة هذا. لا ينطبق نعم
Condition يشير ذلك المصطلح إلى عبارة شرطية تحدّد ما إذا كانت السياسة سارية أم لا. إذا شرط مرتبط بالسياسة، فيتم تنفيذ السياسة فقط إذا كان الشرط يتم تقييمه إلى true. لا ينطبق لا

التدفقات

تحدد ProxyEndpoint وTargetEndpoint مسارًا لرسالة الطلب والردّ. قيد المعالجة. يتكون مسار المعالجة من تدفق الطلب وتدفق الاستجابة. كل طلب يتم تقسيم تدفق الاستجابة والاستجابة فرعيًا إلى PreFlow، وهو نوع اختياري أو أكثر من "شرطي" أو "مُسمّى" وPostFlow.

  • PreFlow: يتم تنفيذه دائمًا. يتم التنفيذ قبل أي تدفقات شرطية.
  • PostFlow: يتم تنفيذه دائمًا. يتم التنفيذ بعد أي تدفقات شرطية.

بالإضافة إلى ذلك، يمكنك إضافة PostClientFlow إلى ProxyEndpoint، والذي يتم تنفيذه بعد يتم إرجاع الرد إلى تطبيق العميل الذي أرسل الطلب. لا تسري إلا سياسة تسجيل الرسائل يمكن إرفاق إضافة تسجيل الدخول إلى Google Stackdriver. على هذا التدفق. تقلل PostClientFlow من وقت استجابة الخادم الوكيل لواجهة برمجة التطبيقات ويوفر معلومات تسجيل لا يتم احتسابه إلا بعد أن يتم إرجاع الرد إلى العميل، مثل client.sent.start.timestamp وclient.sent.end.timestamp. يتم استخدام المسار. ويهدف هذا الإجراء في المقام الأول إلى قياس الفاصل الزمني بين الطوابع الزمنية لبداية الردّ وانتهائه. .

مشاهدة فيديو إرشادي سريع

الفيديو: شاهِد هذا الفيديو القصير حول استخدام ميزة تسجيل الدخول إلى الرسائل PostClientFlow.

في ما يلي مثال على PostClientFlow مع إرفاق سياسة تسجيل الرسائل.

    ...
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <PostClientFlow>
        <Request/>
        <Response>
            <Step>
                <Name>Message-Logging-1</Name>
            </Step>
        </Response>
    </PostClientFlow>
    ...

ينفِّذ مسار معالجة الخادم الوكيل لواجهة برمجة التطبيقات التدفقات بالتسلسل التالي:

مسار الطلب:

  1. تدفق مسبق لطلب الخادم الوكيل
  2. مسارات شرطية لطلب الخادم الوكيل (اختياري)
  3. طلب الخادم الوكيل PostFlow
  4. التدفق المسبق للطلبات المستهدفة
  5. مسارات شرطية للطلب المستهدف (اختياري)
  6. الطلب المستهدَف PostFlow

مسار الاستجابة:

  1. التدفق المسبق للاستجابة المستهدفة
  2. التدفقات الشرطية للاستجابة المستهدفة (اختياري)
  3. الردّ المستهدَف PostFlow
  4. تدفق استجابة الخادم الوكيل
  5. التدفقات الشرطية لاستجابة الخادم الوكيل (اختياري)
  6. PostFlow لاستجابة الخادم الوكيل
  7. رد PostClientFlow (اختياري)

يجب ضبط عمليات التدفق التي تتضمن مرفقات سياسة فقط في ProxyEndpoint أو إعدادات TargetEndpoint يجب تحديد PreFlow وPostFlow فقط في نقطة نهاية ProxyEndpoint أو ضبط TargetEndpoint عند الحاجة إلى فرض سياسة أثناء PreFlow أو PostFlow قيد المعالجة.

على عكس التدفقات الشرطية، لا يكون ترتيب عناصر PreFlow وPostFlow مهم للغاية--سينفذ الخادم الوكيل لواجهة برمجة التطبيقات دائمًا كل منها عند النقطة المناسبة في مسار العملية، بغض النظر عن مكان ظهورها في إعدادات نقطة النهاية.

التدفقات الشرطية

تدعم نقاط النهاية ProxyEndpoints وTargetEndpoints عددًا غير محدود من التدفقات الشرطية (أيضًا تُعرف باسم "التدفقات المُعنونة").

يختبر وكيل واجهة برمجة التطبيقات الشرط المحدّد في التدفق الشرطي، وإذا كان الشرط يمكن تنفيذ خطوات المعالجة في التدفق الشرطي بواسطة الخادم الوكيل لواجهة برمجة التطبيقات. إذا كانت شرط عدم استيفاء الشرط، فسيتم تجاوز خطوات المعالجة في التدفق الشرطي. الشرطي يتم تقييم التدفقات بالترتيب المحدّد في خادم وكيل واجهة برمجة التطبيقات وأول إجراء يكون شرطه Meet.

من خلال تحديد التدفقات الشرطية، يمكنك تطبيق خطوات المعالجة في خادم وكيل لواجهة برمجة التطبيقات. بناءً على:

  • عنوان URI للطلب
  • فعل HTTP (GET/PUT/POST/DELETE)
  • قيمة معلَمة طلب البحث والعنوان ومعلَمة النموذج
  • العديد من أنواع الحالات الأخرى

على سبيل المثال، يحدد التدفق الشرطي التالي أنه يتم تنفيذه فقط عندما مسار مورد الطلب هو /accesstoken. ينبغي أن يتضمن أي طلب وارد المسار /accesstoken إلى تنفيذ هذا المسار، بالإضافة إلى أي سياسات المرتبطة بالتدفق. في حال لم يتضمّن مسار الطلب اللاحقة /accesstoken، لن يتم تنفيذ التدفق (على الرغم من وجود تدفق شرطي آخر ربما).

<Flows>
  <Flow name="TokenEndpoint">
    <Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
    <Request>
      <Step>
        <Name>GenerateAccessToken</Name>
      </Step>
    </Request> 
  </Flow>
</Flows>   

عناصر إعداد التدفق

الاسم الوصف تلقائي مطلوب؟
Flow يشير هذا المصطلح إلى مسار معالجة الطلبات أو الردود الذي تحدّده A ProxyEndpoint أو TargetEndpoint
Name الاسم الفريد للتدفق. لا ينطبق نعم
Condition عبارة شرطية تقوم بتقييم متغيرات أو أكثر لتقييمها إلى true أو خطأ. يجب أن تحدِّد جميع التدفقات باستثناء نوعي PreFlow وPostFlow المحدَّدين مسبقًا شرط لتنفيذها. لا ينطبق نعم
Request المسار المرتبط بطلب معالجة الرسائل لا ينطبق لا
Response المسار المرتبط بمعالجة رسائل الردّ لا ينطبق لا

جارٍ معالجة الخطوات

تفرض Apigee Edge الترتيب التسلسلي للتدفق المشروط. التدفقات الشرطية التنفيذ من أعلى إلى أسفل. التدفق المشروط الأول الذي يتم تقييم حالته يتم تنفيذ true ويتم تنفيذ تدفق مشروط واحد فقط.

في إعدادات التدفق التالية مثلاً، أي طلب وارد لا يتضمن تؤدّي لاحقة المسار /first أو /second إلى ThirdFlow التنفيذ، ما يؤدي إلى فرض السياسة المسماة Return404.

<Flows>
  <Flow name="FirstFlow">
    <Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="SecondFlow">
    <Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
      <Step><Name>SecondPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="ThirdFlow">
    <Request>
      <Step><Name>Return404</Name></Step>
    </Request>
  </Flow>
</Flows>

المراجع

"الموارد" (ملفات الموارد للاستخدام في الخوادم الوكيلة لواجهة برمجة التطبيقات) هي النصوص البرمجية والرموز وعمليات تحويل XSL التي يمكن إرفاقها بالتدفقات باستخدام السياسات. تظهر هذه في "النصوص البرمجية" قسم من واجهة برمجة التطبيقات الخادم الوكيل في واجهة مستخدم الإدارة.

راجِع ملفات الموارد للاطّلاع على الملفات المتوافقة. والموارد.

يمكن تخزين الموارد في خادم وكيل لواجهة برمجة التطبيقات أو بيئة أو مؤسسة. في كل حالة، تتم الإشارة إلى المورد باسم في السياسة. تحل خدمات واجهة برمجة التطبيقات الاسم من خلال الانتقال من واجهة برمجة التطبيقات والوكيل والبيئة ومستوى المؤسسة.

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