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

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

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

پیش نیازها

قبل از شروع:

نمای کلی

این مثال نحوه استفاده از Apigee Adapter for Envoy با Apigee Edge برای Public Cloud را توضیح می دهد. فراخوانی های پراکسی API از طریق Envoy در حال اجرا به عنوان یک برنامه بومی با Edge که خدمات مدیریت API را از طریق Apigee Remote Service برای 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 ترافیک API به و از سرویس هدف را کنترل می کند و با سرویس از راه دور ارتباط برقرار می کند. سرویس از راه دور همچنین با Apigee Edge Cloud ارتباط برقرار می کند تا اطلاعات محصول و پروکسی API را بازیابی کند.

Provision Apigee Edge

در این مرحله، از 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 for Envoy را اجرا کنید

می توانید Remote Service را به صورت باینری بومی یا در Docker اجرا کنید.

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

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

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

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

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

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

به عنوان مثال، برای اجرای تصویر خراش با 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
    

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

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

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