شما در حال مشاهده مستندات 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 از آنها استفاده خواهد کرد.
- به پوشه
$CLI_HOMEبروید:cd $CLI_HOME
- متغیرهای محیطی زیر را ایجاد کنید. این متغیرها به عنوان پارامترهای اسکریپت تأمین استفاده خواهند شد:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordکجا:
متغیر توضیحات organization_name نام سازمان Apigee شما. environment_name نام یک محیط در سازمان شما. your_apigee_username نام کاربری حساب Apigee شما. معمولاً نام کاربری یک آدرس ایمیل است. your_apigee_password رمز عبور Apigee شما. - برای تنظیم پروکسی سرویس از راه دور در 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
- محتویات فایل
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 ایجاد کنید:
- مطمئن شوید که در دایرکتوری
$ENVOY_HOMEهستید. - فهرست الگوهای پیکربندی موجود:
$CLI_HOME/apigee-remote-service-cli samples templates
دستور samples را اجرا کنید. به جای TEMPLATE ، یکی از قالبهای Envoy پشتیبانیشده را جایگزین کنید:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
این دستور فایل
./samples/envoy-config.yamlرا ایجاد میکند.
برای اطلاعات بیشتر، به دستور Samples مراجعه کنید.
پروکسی Envoy را نصب و اجرا کنید
برای نصب و اجرای پروکسی Envoy، این مراحل را دنبال کنید:
- فایل باینری Envoy را دانلود کنید یا آن را بسازید ، یا از Docker استفاده کنید.
- Envoy را با استفاده از یک فایل پیکربندی نمونه که قبلاً برای سرویس
httpbin.orgایجاد کردهاید، اجرا کنید:envoy -c ./samples/envoy-config.yaml
نصب را آزمایش کنید
- یک محصول API را پیکربندی کنید و یک کلید API دریافت کنید، همانطور که در نحوه دریافت کلید API توضیح داده شده است.
- سرویس
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
- با استفاده از کلید، یک فراخوانی API انجام دهید:
export APIKEY=YOUR_API_KEYcurl -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) برای مدیریت، ایجاد توکنها و کنترل اتصالها استفاده کنید. برای جزئیات رابط خط فرمان، به مرجع مراجعه کنید.