استفاده از آداپتور 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 ارائه می‌دهد.

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

A high-level
    view of the Envoy Adapter running natively to communicate with Apigee Edge Cloud, including the
    management plane, runtime plane, and GCP services

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

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

در این مرحله، شما از رابط خط فرمان سرویس راه دور (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-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

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

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

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

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

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

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

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

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

تنوع تصویر
بدون نیاز به گوگل gcr.io/distroless/base
اوبونتو google/apigee-envoy-adapter:v1.1.0-ubuntu
اوبونتو با Boring Crypto google/apigee-envoy-adapter:v1.1.0-boring

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

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
    

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

پروکسی 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
    

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