استخدام محوِّل Apigee لخدمة Envoy مع Apigee Edge

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يوضّح هذا المثال كيفية استخدام محوِّل Apigee لـ Envoy مع Apigee Edge.

المتطلبات الأساسية

قبل البدء:

نظرة عامة

يوضّح هذا المثال كيفية استخدام محوِّل Apigee لـ Envoy مع Apigee Edge في Public Cloud. تتدفق طلبات البيانات من واجهة برمجة التطبيقات الوكيلة من خلال Envoy الذي يعمل كتطبيق أصلي مع Edge الذي يقدّم خدمات إدارة واجهة برمجة التطبيقات من خلال خدمة Apigee Remote Service لـ Envoy.

توفير Apigee Edge

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

  1. انتقِل إلى الدليل $CLI_HOME:
    cd $CLI_HOME
  2. أنشئ متغيّرات البيئة التالية. سيتم استخدام هذه المتغيّرات كمَعلمات لملف النصوص البرمجية لتوفير الخدمة:
    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
  3. نفِّذ الأمر التالي لتوفير خادم الوكيل للخدمة البعيدة على Apigee Edge:

    إذا كنت لا تريد الترقية، استخدِم هذا الأمر لتوفير Apigee:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

    في حال الترقية، استخدِم هذا الأمر مع العلامة --force-proxy-install لتوفير المتطلبات اللازمة في Apigee:

    $CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
  4. تحقّق من محتوى ملف 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.

تشغيل الخدمة محليًا

نفِّذ البرنامج الثنائي للخدمة باستخدام ملف الإعداد الذي تم إخراجه من خلال أمر توفير المتطلبات اللازمة:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

تشغيل الخدمة على Docker

يتم نشر صور Docker مع علامات الإصدار. لإجراء عملية التثبيت هذه، استخدِم أحدث إصدار. تتوفر ثلاث صيغ مختلفة من الصور للاختيار من بينها:

التنويع صورة
لا تتضمن مشاكل من Google google/apigee-envoy-adapter:v2.0.0
Ubuntu google/apigee-envoy-adapter:v2.0.0-ubuntu
Ubuntu مع Boring Crypto google/apigee-envoy-adapter:v2.0.0-boring

على سبيل المثال، لتشغيل صورة من الصفر مع config.yaml المحلي المتوفّر على هيئة /config.yaml عبر قاعدة تثبيت مستوى الصوت، استخدِم الأمر التالي:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0

إنشاء نماذج ملفات الإعداد

أنشئ ملف إعدادات Envoy باستخدام واجهة سطر الأوامر:

  1. تأكَّد من أنّك في الدليل $ENVOY_HOME.
  2. أدرِج نماذج الضبط المتاحة:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. نفِّذ الأمر samples. بالنسبة إلى TEMPLATE، استبدِل أحد نماذج Envoy المتوافقة:

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    ينشئ الأمر الملف ./samples/envoy-config.yaml.

لمزيد من المعلومات، يُرجى الاطّلاع على أمر "عيّنات".

تثبيت خادم Envoy الوكيل وتشغيله

اتّبِع الخطوات التالية لتثبيت الخادم الوكيل Envoy وتشغيله:

  1. يمكنك تنزيل برنامج ثنائي Envoy أو إنشاء برنامج أو استخدام Docker.
  2. يمكنك تشغيل Envoy باستخدام نموذج ملف إعدادات أنشأته سابقًا لخدمة httpbin.org:
    envoy -c ./samples/envoy-config.yaml

اختبار عملية التثبيت

  1. اضبط منتج واجهة برمجة التطبيقات واحصل على مفتاح واجهة برمجة التطبيقات كما هو موضّح في مقالة كيفية الحصول على مفتاح واجهة برمجة التطبيقات.
  2. استدعاء خدمة httpbin بدون مفتاح واجهة برمجة التطبيقات:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

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

    curl -i http://localhost:8080/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
  3. يمكنك إجراء طلب بيانات من واجهة برمجة التطبيقات باستخدام المفتاح:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/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 عدة مرات أخرى لتنشيط الحصة. وعند استنفاد الحصة، يتم عرض خطأ 403 لحالة HTTP.
  • انتقِل إلى Apigee Analytics في واجهة مستخدم Edge. انتقِل إلى تحليل > مقاييس واجهة برمجة التطبيقات > واجهة برمجة التطبيقات أداء الخادم الوكيل.
  • أنشئ الرموز المميّزة لبروتوكول JWT واستخدِمها لمصادقة طلبات البيانات من واجهة برمجة التطبيقات.
  • استخدِم سطر الأوامر لإدارة الرموز المميّزة وإنشائها والتحكّم في عمليات الربط. لمعرفة تفاصيل واجهة سطر الأوامر، يُرجى الاطّلاع على المرجع.