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

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

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

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

قبل البدء:

نظرة عامة

يوضّح هذا المثال كيفية استخدام محوِّل Apigee لخدمة Envoy مع حزمة Apigee Edge العامة على Cloud. تتدفق الطلبات الخادم الوكيل لواجهة برمجة التطبيقات من خلال Envoy الذي يعمل كتطبيق أصلي مع Edge الذي يوفّر خدمات إدارة واجهة برمجة التطبيقات من خلال خدمة Apigee عن بُعد لـ 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 عن بُعد لخدمة 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 مع التشفير الممل 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. نفِّذ الأمر عيّنات. بالنسبة إلى 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 المميزة واستخدامها لمصادقة طلبات بيانات من واجهة برمجة التطبيقات.
  • استخدم واجهة سطر الأوامر (CLI) لإدارة الروابط وإنشائها والتحكم في الربط. لمعرفة تفاصيل واجهة سطر الأوامر، يُرجى الاطّلاع على المرجع.