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

يتم تشغيل وكيل Envoy و"الخدمة البعيدة" محليًا. تتعامل 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 --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - تحقَّق من محتوى الملف
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
يتم استخدام قيم المفتاح والسّر للتحقّق من صحة الطلبات الواردة من Remote Service Proxy إلى Apigee Edge.
تشغيل خدمة Apigee Remote Service for 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 |
على سبيل المثال، لتشغيل صورة تجريبية مع توفُّر 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 -H "HOST:httpbin.org"
تتولّى Apigee الآن إدارة الخدمة، وبما أنّك لم تقدّم مفتاح واجهة برمجة تطبيقات، يعرض الطلب الخطأ التالي.
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org" 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 "HOST:httpbin.org" -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" في واجهة مستخدم Edge انتقِل إلى تحليل > مقاييس واجهة برمجة التطبيقات > أداء خادم وكيل واجهة برمجة التطبيقات.
- إنشاء رموز JWT المميّزة واستخدامها للمصادقة على طلبات البيانات من واجهة برمجة التطبيقات
- استخدِم واجهة سطر الأوامر لإدارة الرموز المميزة وإنشائها والتحكّم في عمليات الربط. للحصول على تفاصيل حول واجهة سطر الأوامر، يُرجى الاطّلاع على المرجع.