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

يتم تشغيل خادم وكيل Envoy و"الخدمة البعيدة" محليًا. يتعامل Envoy مع عدد الزيارات إلى واجهة برمجة التطبيقات من الخدمة المستهدَفة وإليها، ويتواصل مع "الخدمة البعيدة". تتواصل "الخدمة البعيدة" أيضًا مع Apigee Edge Cloud لاسترداد معلومات الخادم الوكيل والمنتج من واجهة برمجة التطبيقات.
توفير Apigee Edge
في هذه الخطوة، ستستخدِم واجهة سطر الأوامر (CLI) في "الخدمة البعيدة" لتوفير مواد عرض "محوِّل Apigee" لـ 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 --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yamlحيث يشير
$MFAإلى رمز تفويض متعدّد العوامل من Apigee. - تحقَّق من محتويات ملف
config.yaml. من المفترض أن تظهر بشكلٍ مشابه لما يلي:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75
تُستخدَم قيمتا المفتاح والسرّ للتحقّق من صحة الطلبات من الخادم الوكيل للخدمة البعيدة إلى Apigee Edge.
تشغيل "الخدمة البعيدة من Apigee" لـ Envoy
يمكنك تشغيل "الخدمة البعيدة" إما كملف ثنائي أصلي أو على Docker.
تشغيل الخدمة بشكل أصلي
نفِّذ الملف الثنائي للخدمة باستخدام ملف الإعداد الذي تم إخراجه من خلال أمر التوفير:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
تشغيل الخدمة على Docker
يتم نشر صور Docker باستخدام علامات الإصدار. بالنسبة إلى عملية التثبيت هذه، استخدِم أحدث إصدار. هناك ثلاثة أشكال للصور يمكنك الاختيار من بينها:
| التنويع | صورة |
|---|---|
| Google distroless | gcr.io/distroless/base |
| Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
| Ubuntu مع Boring Crypto | google/apigee-envoy-adapter:v1.1.0-boring |
على سبيل المثال، لتشغيل صورة scratch مع ملف config.yaml المحلي المتاح باسم /config.yaml
من خلال عملية ربط وحدة تخزين، استخدِم هذا الأمر:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0
إنشاء ملفات إعداد نموذجية
استخدِم الأمر apigee-remote-service-cli samples create لإنشاء
ملفات إعداد نموذجية.
بالنسبة إلى هذا المثال، تحتاج إلى الملفات التي تم إنشاؤها التالية:
envoy-config.yaml: ملف إعداد نشر لخدمة HTTP
لإنشاء النماذج:
- انتقِل إلى الدليل
$CLI_HOME. نفِّذ هذا الأمر لإنشاء الملفات:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
يتم إخراج الملفات التالية إلى الدليل
./samples:ls samples envoy-config.yaml
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة أمر النماذج.
تثبيت خادم وكيل Envoy وتشغيله
اتّبِع الخطوات التالية لتثبيت خادم وكيل Envoy وتشغيله:
- نزِّل ملفًا ثنائيًا من Envoy أو أنشئه، أو استخدِم Docker.
- شغِّل Envoy باستخدام ملف إعداد نموذجي أنشأته سابقًا لخدمة
httpbin.org:envoy -c $CLI_HOME/samples/envoy-config.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 403. يتم إرجاعه. - يمكنك الوصول إلى Apigee Analytics في واجهة مستخدم Edge. انتقِل إلى تحليل > مقاييس واجهة برمجة التطبيقات > أداء الخادم الوكيل لواجهة برمجة التطبيقات.
- يمكنك إنشاء رموز JWT واستخدامها لمصادقة طلبات البيانات من واجهة برمجة التطبيقات.
- استخدِم واجهة سطر الأوامر (CLI) لإدارة الرموز وإنشائها والتحكّم في عمليات الربط. للحصول على تفاصيل واجهة سطر الأوامر (CLI)، يُرجى الاطّلاع على المرجع.