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

در این مرحله، از «میانای خط فرمان سرویس از دور» برای آماده‌سازی دارایی‌های «سازگار 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 استفاده کنید:

    $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 distroless 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

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

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

ایجاد فایل‌های پیکربندی نمونه

بااستفاده از CLI، فایل پیکربندی 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 مدیریت می‌شود و چون کلید API ارائه نداده‌اید، تماس خطای زیر را برمی‌گرداند.

    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. بااستفاده از کلید، تماس API برقرار کنید:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/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 برای مدیریت، ایجاد نشان‌ها، و کنترل پیوندها استفاده کنید. برای جزئیات «میانای خط فرمان»، مرجع را ببینید.