أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يوضّح هذا المثال كيفية استخدام Apigee Adapter for Envoy مع Apigee Edge.
المتطلبات الأساسية
| قبل البدء: |
|---|
|
|
نظرة عامة
يوضّح هذا المثال كيفية استخدام "محوّل Apigee" لـ Envoy مع Apigee Edge for Public Cloud. تنتقل طلبات البيانات من واجهة برمجة التطبيقات عبر Envoy الذي يعمل كتطبيق أصلي مع توفير Edge لخدمات إدارة واجهة برمجة التطبيقات من خلال Apigee Remote Service for Envoy.
يوضّح الشكل التالي البنية الأساسية لعملية الدمج في Apigee Edge:

يتم تشغيل وكيل Envoy وRemote Service محليًا. تتعامل Envoy مع عدد الزيارات إلى واجهة برمجة التطبيقات من الخدمة المستهدَفة وإليها، وتتواصل مع "الخدمة البعيدة". تتواصل "الخدمة البعيدة" أيضًا مع Apigee Edge Cloud لاسترداد معلومات حول منتج واجهة برمجة التطبيقات والوكيل.
توفير Apigee Edge
في هذه الخطوة، ستستخدِم واجهة سطر الأوامر الخاصة بالخدمة البعيدة لتوفير مواد عرض Apigee Adapter for Envoy إلى Apigee Edge. ينشر أمر التوفير خادم وكيل لواجهة برمجة التطبيقات على Apigee Edge، ويُعدّ أيضًا شهادة على Apigee، ويُنشئ بيانات اعتماد ستستخدمها الخدمة البعيدة للاتصال بشكل آمن من نظامك إلى Apigee.
- انتقِل إلى دليل
$CLI_HOME:cd $CLI_HOME
- أنشئ متغيّرات البيئة التالية. سيتم استخدام هذه المتغيّرات كمَعلمات لنص البرمجة الخاص بتوفير الموارد:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordالمكان:
متغيّر الوصف organization_name اسم مؤسسة Apigee environment_name اسم بيئة في مؤسستك your_apigee_username اسم المستخدم لحسابك على Apigee عادةً ما يكون اسم المستخدم هو عنوان بريد إلكتروني. your_apigee_password كلمة مرور Apigee - نفِّذ الأمر التالي لتوفير وكيل الخدمة البعيدة على Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - تحقَّق من محتوى الملف
config.yaml. من المفترض أن تظهر بشكلٍ مشابه لما يلي:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
يتم استخدام قيم المفتاح والسّر للتحقّق من صحة الطلبات من الخادم الوكيل للخدمة عن بُعد إلى Apigee Edge.
تشغيل خدمة Apigee Remote Service for Envoy
يمكنك تشغيل "الخدمة البعيدة" إما كملف ثنائي أصلي أو على Docker.
تشغيل الخدمة بشكل أصلي
نفِّذ ملف الخدمة الثنائي باستخدام ملف الإعداد الذي تم إخراجه من أمر الإعداد:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
تشغيل الخدمة على Docker
يتم نشر صور Docker باستخدام علامات الإصدار. يجب استخدام أحدث إصدار من التطبيق في عملية التثبيت هذه. تتوفّر ثلاثة أشكال مختلفة من الصور للاختيار من بينها:
| التنويع | صورة |
|---|---|
| scratch | google/apigee-envoy-adapter:v1.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
| Ubuntu with Boring Crypto | google/apigee-envoy-adapter:v1.0.0-boring |
على سبيل المثال، لتشغيل صورة تجريبية مع توفُّر config.yaml المحلي كـ /config.yaml
من خلال ربط وحدة تخزين، استخدِم الأمر التالي:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
تثبيت خادم Envoy الوكيل وتشغيله
اتّبِع الخطوات التالية لتثبيت خادم وكيل Envoy وتشغيله:
- نزِّل ملفًا ثنائيًا من Envoy أو أنشئ الملف، أو استخدِم Docker.
- شغِّل Envoy باستخدام ملف إعداد نموذجي تم إعداده لخدمة
httpbin.org:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
اختبار التثبيت
- الاتصال بخدمة
httpbin:curl -i http://localhost:8080/httpbin/headers
تتم إدارة الخدمة الآن من خلال Apigee، وبما أنّك لم تقدّم مفتاح واجهة برمجة تطبيقات، يعرض الطلب الخطأ التالي.
curl -i http://localhost:8080/httpbin/headers HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- اضبط منتج واجهة برمجة التطبيقات واحصل على مفتاح واجهة برمجة التطبيقات كما هو موضّح في مقالة كيفية الحصول على مفتاح واجهة برمجة التطبيقات.
- إجراء طلب بيانات من واجهة برمجة التطبيقات باستخدام المفتاح:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"يجب أن ينجح الطلب مع عرض الحالة 200 وإرجاع قائمة بالعناوين في الرد. على سبيل المثال:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
الخطوات التالية
تتولّى Apigee الآن إدارة عدد الزيارات إلى واجهة برمجة التطبيقات لخدمة httpbin. في ما يلي بعض الميزات التي يمكنك استكشافها وتجربتها:
- إذا كنت قد أعددت منتج واجهة برمجة التطبيقات كما هو موضّح في كيفية الحصول على مفتاح واجهة برمجة التطبيقات، تم ضبط الحد الأقصى للحصة على 5 طلبات في الدقيقة. حاوِل الاتصال بخدمة
httpbinعدة مرات أخرى لتفعيل الحصة. عند تجاوز الحصة، سيظهر لك الخطأ التالي:HTTP/1.1 429 Too Many Requests
- الوصول إلى Apigee Analytics في واجهة مستخدم Edge انتقِل إلى تحليل > مقاييس واجهة برمجة التطبيقات > أداء خادم وكيل واجهة برمجة التطبيقات.
- إنشاء رموز JWT المميزة واستخدامها للمصادقة على طلبات البيانات من واجهة برمجة التطبيقات
- استخدِم واجهة سطر الأوامر لإدارة الرموز المميزة وإنشائها والتحكّم في عمليات الربط. للحصول على تفاصيل حول واجهة سطر الأوامر، يُرجى الاطّلاع على المرجع.