شما در حال مشاهده اسناد 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 را نشان می دهد:
یک پروکسی فرستاده و سرویس از راه دور به صورت محلی در حال اجرا هستند. Envoy ترافیک API به و از سرویس هدف را کنترل می کند و با سرویس از راه دور ارتباط برقرار می کند. سرویس از راه دور همچنین با Apigee Edge Cloud ارتباط برقرار می کند تا اطلاعات محصول و پروکسی API را بازیابی کند.
Provision Apigee Edge
در این مرحله، از Remote Service CLI برای ارائه آداپتور Apigee برای داراییهای Envoy به Apigee Edge استفاده خواهید کرد. دستور تهیه، یک پراکسی API را در Apigee Edge مستقر میکند، و همچنین یک گواهی را در Apigee تنظیم میکند و اعتبارنامههایی را ایجاد میکند که سرویس از راه دور برای اتصال ایمن از سیستم شما به Apigee استفاده میکند.
- به فهرست راهنمای
$CLI_HOME
بروید:cd $CLI_HOME
- متغیرهای محیطی زیر را ایجاد کنید. این متغیرها به عنوان پارامترهای اسکریپت تامین استفاده خواهند شد:
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 شما - دستور زیر را برای ارائه پراکسی سرویس راه دور در Apigee Edge اجرا کنید:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- محتویات فایل
config.yaml
را بررسی کنید. باید چیزی شبیه این باشد:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
مقادیر کلید و مخفی برای اعتبارسنجی درخواستهای 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:v1.0.0 |
اوبونتو | google/apigee-envoy-adapter:v1.0.0-ubuntu |
اوبونتو با کریپتو خسته کننده | google/apigee-envoy-adapter:v1.0.0-boring |
به عنوان مثال، برای اجرای تصویر خراش با config.yaml
محلی خود که به عنوان /config.yaml
از طریق یک ولوم مونت در دسترس است، از این دستور استفاده کنید:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
پروکسی Envoy را نصب و اجرا کنید
برای نصب و اجرای پروکسی Envoy مراحل زیر را دنبال کنید:
- باینری Envoy را دانلود کنید یا آن را بسازید یا از Docker استفاده کنید.
- Envoy را با استفاده از یک فایل پیکربندی نمونه که برای سرویس
httpbin.org
تنظیم شده است اجرا کنید:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
نصب را تست کنید
- با سرویس
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
- یک محصول API را پیکربندی کنید و یک کلید API دریافت کنید همانطور که در نحوه به دست آوردن یک کلید API توضیح داده شده است.
- با استفاده از کلید زیر یک تماس API برقرار کنید:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/httpbin/headers -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/1.1 429 Too Many Requests
- به Apigee Analytics در رابط کاربری Edge دسترسی داشته باشید. به Analyze > API Metrics > API Proxy Performance بروید.
- توکنهای JWT را برای احراز هویت تماسهای API ایجاد و استفاده کنید.
- از CLI برای مدیریت، ایجاد نشانه ها و کنترل اتصالات استفاده کنید. برای جزئیات CLI، به مرجع مراجعه کنید.