أنت تعرض مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يوضّح هذا المثال كيفية استخدام محوِّل Apigee لـ Envoy مع Apigee Edge.
المتطلبات الأساسية
قبل البدء: |
---|
|
نظرة عامة
يوضّح هذا المثال كيفية استخدام محوِّل Apigee لـ Envoy مع Apigee Edge في Public Cloud. وتتدفق طلبات الخادم الوكيل لواجهة برمجة التطبيقات من خلال Envoy الذي يتم تشغيله كتطبيق محلي، إذ يوفّر Edge خدمات إدارة واجهة برمجة التطبيقات من خلال Apigee Remote Service في Envoy.
يوضّح الشكل التالي البنية الأساسية لدمج Apigee Edge:
يتم تشغيل خادم وكيل Envoy و"الخدمة البعيدة" محليًا. يتعامل Envoy مع عدد زيارات واجهة برمجة التطبيقات من الخدمة المستهدفة وإليها ويتواصل مع "الخدمة عن بُعد". تتواصل الخدمة البعيدة أيضًا مع Apigee Edge Cloud لاسترداد معلومات المنتجات والخوادم الوكيلة لواجهات برمجة التطبيقات.
توفير Apigee Edge
في هذه الخطوة، ستستخدم واجهة سطر الأوامر للخدمة البعيدة لتوفير "محوِّل Apigee لمواد عرض Envoy" في Apigee Edge. ينشر أمر التوفير خادمًا وكيلاً لواجهة برمجة التطبيقات في Apigee Edge، ويُعدّ أيضًا شهادة في Apigee وينشئ بيانات اعتماد ستستخدمها الخدمة البعيدة للاتصال بأمان من نظامك إلى Apigee.
- انتقِل إلى الدليل
$CLI_HOME
:cd $CLI_HOME
- أنشئ متغيّرات البيئة التالية. سيتم استخدام هذه المتغيّرات كمَعلمات لملف النصوص البرمجية لتوفير الخدمة:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export 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
يتم استخدام قيم المفتاح والمفتاح السرّي للتحقّق من صحة الطلبات الواردة من خادم وكيل الخدمة عن بُعد إلى Apigee Edge.
تشغيل خدمة Apigee Remote Service لخدمة Envoy
يمكنك تشغيل الخدمة عن بُعد إما كبرنامج ثنائي أصلي أو على Docker.
تشغيل الخدمة بشكل أصلي
نفِّذ البرنامج الثنائي للخدمة باستخدام ملف الإعداد الذي تم إخراجه من خلال أمر توفير المتطلبات اللازمة:
$CLI_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_KEY
curl -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 Analytics في واجهة مستخدم Edge. انتقِل إلى تحليل > مقاييس واجهة برمجة التطبيقات > واجهة برمجة التطبيقات أداء الخادم الوكيل.
- أنشئ الرموز المميّزة لبروتوكول JWT واستخدِمها لمصادقة طلبات البيانات من واجهة برمجة التطبيقات.
- استخدِم واجهة سطر الأوامر لإدارة الرموز المميّزة والتحكُّم فيها والتحكُّم في عمليات الربط. لمعرفة تفاصيل واجهة سطر الأوامر، يُرجى الاطّلاع على المرجع.