استفاده از «وقث‌دهنده 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 --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 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

برای مثال، برای اجرای تصویر scratch با 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.

برای تولید نمونه‌ها:

  1. به فهرست راهنمای $CLI_HOME بروید.
  2. برای تولید فایل‌ها، این فرمان را اجرا کنید:

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml
    را مشخص کنید

    فایل‌های زیر در دایرکتوری ./samples برونداد می‌شوند:

    ls samples
    envoy-config.yaml
    

برای اطلاعات بیشتر، فرمان نمونه‌ها را ببینید.

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

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

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

آزمودن نصب

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

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

    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
  2. محصول میانای برنامه‌سازی کاربردی را پیکربندی کنید و کلید میانای برنامه‌سازی کاربردی را همان‌طور که در نحوه دریافت کلید میانای برنامه‌سازی کاربردی توضیح داده شده است دریافت کنید.
  3. بااستفاده از کلید، تماس API برقرار کنید:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers \
    -H "HOST:httpbin.org" -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 403 برگردانده می‌شود.
  • در «واسط کاربر Edge» به Apigee Analytics دسترسی پیدا کنید. به تجزیه‌وتحلیل > سنجه‌های API > API عملکرد پراکسی بروید.
  • برای اصالت‌سنجی تماس‌های API، نشانه‌های JWT تولید و استفاده کنید.
  • از CLI برای مدیریت، ایجاد نشان‌ها، و کنترل پیوندها استفاده کنید. برای جزئیات «میانای خط فرمان»، مرجع را ببینید.