استفاده از آداپتور Apigee برای Envoy با Apigee Edge

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

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

پیش‌نیازها

قبل از شروع:

نمای کلی

این مثال نحوه استفاده از Apigee Adapter for Envoy به همراه Apigee Edge for Public Cloud را توضیح می‌دهد. فراخوانی‌های پروکسی API از طریق Envoy که به عنوان یک برنامه بومی اجرا می‌شود، جریان می‌یابد و Edge خدمات مدیریت API را از طریق Apigee Remote Service for Envoy ارائه می‌دهد.

ارائه لبه آپیجی

در این مرحله، شما از رابط خط فرمان سرویس راه دور (Remote Service CLI) برای آماده‌سازی آداپتور 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
       ...

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

سرویس Apigee Remote را برای سرویس Envoy اجرا کنید.

شما می‌توانید سرویس راه دور را یا به صورت یک فایل باینری بومی یا روی داکر اجرا کنید.

سرویس را به صورت بومی اجرا کنید

فایل باینری سرویس را با فایل پیکربندی که توسط دستور provisioning خروجی داده شده است، اجرا کنید:

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

اجرای سرویس روی داکر

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

تنوع تصویر
بدون نیاز به گوگل google/apigee-envoy-adapter:v2.0.0
اوبونتو google/apigee-envoy-adapter:v2.0.0-ubuntu
اوبونتو با Boring Crypto google/apigee-envoy-adapter:v2.0.0-boring

برای مثال، برای اجرای تصویر خراش با config.yaml محلی خود که با نام /config.yaml از طریق یک درایو مجازی (volume mount) در دسترس است، از این دستور استفاده کنید:

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. دستور samples را اجرا کنید. به جای TEMPLATE ، یکی از قالب‌های Envoy پشتیبانی‌شده را جایگزین کنید:

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

    این دستور فایل ./samples/envoy-config.yaml را ایجاد می‌کند.

برای اطلاعات بیشتر، به دستور Samples مراجعه کنید.

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

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

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

نصب را آزمایش کنید

  1. یک محصول API را پیکربندی کنید و یک کلید API دریافت کنید، همانطور که در نحوه دریافت کلید API توضیح داده شده است.
  2. سرویس httpbin را بدون کلید API فراخوانی کنید:
    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 بازگردانده می‌شود.
  • به Apigee Analytics در رابط کاربری Edge دسترسی پیدا کنید. به Analyze > API Metrics > API Proxy Performance بروید.
  • تولید و استفاده از توکن‌های JWT برای احراز هویت فراخوانی‌های API.
  • از رابط خط فرمان (CLI) برای مدیریت، ایجاد توکن‌ها و کنترل اتصال‌ها استفاده کنید. برای جزئیات رابط خط فرمان، به مرجع مراجعه کنید.