استفاده از آداپتور 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 ارائه می کند، جریان می یابد.

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 استفاده کنید:

    $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 for Envoy را اجرا کنید

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

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

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

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

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

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

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

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

برای اطلاعات بیشتر، دستور 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"

    تماس باید با وضعیت 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، به مرجع مراجعه کنید.