استفاده از «وقث‌دهنده Apigee برای Envoy» با Apigee Edge

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

این مثال نحوه استفاده از «وقث‌دهنده Apigee برای Envoy» را با Apigee Edge نشان می‌دهد.

پیش‌نیازها

قبل‌از شروع:

نمای کلی

این مثال توضیح می‌دهد که چگونه از «وقث‌دهنده Apigee برای Envoy» با Apigee Edge برای «ابر عمومی» استفاده کنید. جریان تماس‌های پراکسی API ازطریق Envoy که به‌عنوان برنامه بومی با Edge اجرا می‌شود انجام می‌شود و Edge خدمات مدیریت API را ازطریق «سرویس راه دور Apigee برای Envoy» ارائه می‌دهد.

شکل زیر معماری پایه برای یکپارچه‌سازی Apigee Edge را نشان می‌دهد:

نمای سطح بالا از
    «وقث‌دهنده Envoy» که به‌صورت بومی برای ارتباط با Apigee Edge Cloud اجرا می‌شود، ازجمله
    صفحه مدیریت، صفحه زمان اجرا، و خدمات GCP

پراکسی Envoy و «سرویس ازراه‌دور» به‌صورت محلی اجرا می‌شوند. ‫Envoy ترافیک میانای برنامه‌سازی کاربردی را به سرویس هدف و از آن مدیریت می‌کند و با «سرویس ازراه‌دور» ارتباط برقرار می‌کند. «سرویس راه دور» همچنین با Apigee Edge Cloud ارتباط برقرار می‌کند تا اطلاعات محصول و پراکسی API را بازیابی کند.

تأمین Apigee Edge

در این مرحله، از «میانای خط فرمان سرویس از دور» برای آماده‌سازی دارایی‌های «سازگار Apigee برای Envoy» در Apigee Edge استفاده خواهید کرد. فرمان آماده‌سازی یک پراکسی API را در 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-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. محتوای فایل config.yaml را بررسی کنید. باید چیزی شبیه به این باشد:
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

    از مقادیر کلید و رمز برای اعتبارسنجی درخواست‌های «پراکسی سرویس راه‌دور» به Apigee Edge استفاده می‌شود.

اجرای سرویس «سرویس از دور Apigee برای Envoy»

می‌توانید «سرویس از دور» را هم به‌عنوان باینری بومی و هم در Docker اجرا کنید.

اجرای بومی سرویس

فایل اجرایی سرویس را با فایل پیکربندی که توسط فرمان آماده‌سازی برونداد شده است اجرا کنید:

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

اجرای سرویس در Docker

تصاویر Docker با برچسب‌های انتشار منتشر می‌شوند. برای این نصب، از جدیدترین نسخه استفاده کنید. سه تنوع تصویر برای انتخاب وجود دارد:

گونه تصویر
scratch google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
‫Ubuntu با Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

برای مثال، برای اجرای تصویر scratch با config.yaml محلی که به‌عنوان /config.yaml دردسترس است ازطریق نصب حجم، از این فرمان استفاده کنید:

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

نصب و اجرای پراکسی Envoy

برای نصب و اجرای پراکسی Envoy، این مراحل را دنبال کنید:

  1. باینری Envoy را بارگیری کنید یا آن را بسازید، یا از Docker استفاده کنید.
  2. ‫Envoy را بااستفاده از فایل پیکربندی نمونه‌ای که برای سرویس httpbin.org راه‌اندازی شده است اجرا کنید:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

آزمودن نصب

  1. با سرویس httpbin تماس بگیرید:
    curl -i http://localhost:8080/httpbin/headers
    

    اکنون این سرویس توسط Apigee مدیریت می‌شود و چون کلید API ارائه نداده‌اید، تماس خطای زیر را برمی‌گرداند.

    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
  2. محصول میانای برنامه‌سازی کاربردی را پیکربندی کنید و کلید میانای برنامه‌سازی کاربردی را همان‌طور که در نحوه دریافت کلید میانای برنامه‌سازی کاربردی توضیح داده شده است دریافت کنید.
  3. بااستفاده از کلید، تماس API برقرار کنید:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    تماس باید با وضعیت ۲۰۰ موفقیت‌آمیز باشد و فهرستی از سرایندها را در پاسخ برگرداند. برای مثال:

    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"
      }
    }

مراحل بعدی

ترافیک API به سرویس httpbin اکنون توسط Apigee مدیریت می‌شود. در اینجا برخی‌از ویژگی‌هایی که می‌توانید کاوش و امتحان کنید آمده است:

  • اگر محصول API خود را همان‌گونه که در نحوه دریافت کلید API توضیح داده شده است پیکربندی کرده باشید، حد سهمیه روی ۵ درخواست در دقیقه تنظیم شده است. چند بار دیگر با سرویس httpbin تماس بگیرید تا سهمیه را راه‌اندازی کنید. وقتی از سهمیه فراتر می‌روید، این خطا را می‌بینید:
    HTTP/1.1 429 Too Many Requests
  • در «واسط کاربر Edge» به Apigee Analytics دسترسی پیدا کنید. به تجزیه‌وتحلیل > سنجه‌های API > API عملکرد پراکسی بروید.
  • برای اصالت‌سنجی تماس‌های API، نشانه‌های JWT تولید و استفاده کنید.
  • از CLI برای مدیریت، ایجاد نشان‌ها، و کنترل پیوندها استفاده کنید. برای جزئیات «میانای خط فرمان»، مرجع را ببینید.