درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
Edge Microgateway نسخه ۳.۱.۵ و جدیدتر
این موضوع نحوه مدیریت و پیکربندی Edge Microgateway را مورد بحث قرار میدهد.
ارتقا دادن Edge Microgateway درصورت داشتن اتصال اینترنت
این بخش نحوه ارتقا دادن نصب موجود Edge Microgateway را توضیح میدهد. اگر بدون اتصال اینترنت کار میکنید، آیا میتوانم Edge Microgateway را بدون اتصال اینترنت نصب کنم؟ را ببینید.
Apigee توصیه میکند پیکربندی موجودتان را با نسخه جدید قبلاز ارتقا دادن محیط تولیدتان آزمایش کنید.
- فرمان
npmزیر را برای ارتقا به جدیدترین نسخه Edge Microgateway اجرا کنید:npm upgrade edgemicro -g
برای ارتقا به نسخه خاصی از Edge Microgateway، باید شماره نسخه را در فرمان ارتقا مشخص کنید. اگر شماره نسخه را مشخص نکنید، جدیدترین نسخه نصب خواهد شد. برای مثال، برای ارتقا به نسخه ۳.۱.۰، از فرمان زیر استفاده کنید:
npm upgrade edgemicro@3.1.0 -g
- شماره نسخه را بررسی کنید؛ برای مثال، اگر نسخه ۳.۱.۰ را نصب کردهاید:
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.1.0 - درنهایت، به جدیدترین نسخه پراکسی edgemicro-auth ارتقا دهید:
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
درحال اعمال تغییرات پیکربندی
فایلهای پیکربندی که باید درباره آنها بدانید عبارتند از:
- فایل پیکربندی پیشفرض سیستم
- فایل پیکربندی پیشفرض برای نمونه Edge Microgateway که بهتازگی مقداردهی اولیه شده است
- فایل پیکربندی پویا برای نمونههای درحال اجرا
این بخش درباره این فایلها و آنچه باید درباره تغییر آنها بدانید بحث میکند.
فایل پیکربندی سیستم پیشفرض
وقتی Edge Microgateway را نصب میکنید، فایل پیکربندی سیستم پیشفرض در اینجا قرار میگیرد:
prefix/lib/node_modules/edgemicro/config/default.yaml
که prefix دایرکتوری پیشوند npm است. اگر نمیتوانید این دایرکتوری را پیدا کنید،
Edge Microgateway کجا نصب شده است را ببینید.
اگر فایل پیکربندی سیستم را تغییر دهید، باید Edge Microgateway را دوباره مقداردهی اولیه، پیکربندی، و بازراهاندازی کنید:
edgemicro initedgemicro configure [params]edgemicro start [params]
فایل پیکربندی پیشفرض برای نمونههای Edge Microgateway که بهتازگی مقداردهی اولیه شدهاند
وقتی edgemicro init را اجرا میکنید، فایل پیکربندی سیستم (که در بالا شرح داده شد)، default.yaml، در فهرست راهنمای ~/.edgemicro قرار میگیرد.
اگر فایل پیکربندی را در ~/.edgemicro تغییر دهید، باید Edge Microgateway را دوباره پیکربندی و بازراهاندازی کنید:
edgemicro stopedgemicro configure [params]edgemicro start [params]
فایل پیکربندی پویا برای نمونههای درحال اجرا
وقتی edgemicro configure [params] را اجرا میکنید، فایل پیکربندی پویایی در ~/.edgemicro ایجاد میشود. نام فایل براساس این الگو است: org-env-config.yaml، که org و env نامهای سازمان و محیط Apigee Edge شما هستند. میتوانید از این فایل برای ایجاد تغییرات پیکربندی استفاده کنید و سپس آنها را بدون زمان خرابی مجدداً بار کنید. برای مثال، اگر افزونهای را اضافه و پیکربندی کنید،
میتوانید پیکربندی را بدون ایجاد زمان خرابی مجدداً بار کنید، همانطور که در زیر توضیح داده شده است.
اگر Edge Microgateway درحال اجرا است (گزینه زمان ازکارافتادگی صفر):
- پیکربندی Edge Microgateway را مجدداً بار کنید:
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
مکان:
- $ORG نام سازمان Edge شما است (باید سرپرست سازمان باشید).
- $ENV محیطی در سازمان شما است (مثل «test» یا «prod»).
- $KEY کلیدی است که قبلاً توسط فرمان پیکربندی برگردانده شده است.
- $SECRET کلیدی است که قبلاً توسط فرمان پیکربندی برگردانده شده است.
برای مثال
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
اگر Edge Microgateway متوقف شده است:
- بازراهاندازی Edge Microgateway:
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
مکان:
- $ORG نام سازمان Edge شما است (باید سرپرست سازمان باشید).
- $ENV محیطی در سازمان شما است (مثل «test» یا «prod»).
- $KEY کلیدی است که قبلاً توسط فرمان پیکربندی برگردانده شده است.
- $SECRET کلیدی است که قبلاً توسط فرمان پیکربندی برگردانده شده است.
برای مثال:
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
در اینجا نمونهای از فایل پیکربندی آورده شده است. برای جزئیات درباره تنظیمات فایل پیکربندی، به مرجع پیکربندی Edge Microgateway مراجعه کنید.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
تنظیم متغیرهای محیطی
فرمانهای میانای خط فرمان که به مقادیری برای سازمان و محیط Edge شما نیاز دارند، و کلید و رمز لازم برای شروع Edge Microgateway را میتوان در این متغیرهای محیطی ذخیره کرد:
EDGEMICRO_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_SECRET
تنظیم این متغیرها اختیاری است. اگر آنها را تنظیم کنید، لازم نیست مقادیرشان را هنگام استفاده از «میانای خط فرمان» (CLI) برای پیکربندی و راهاندازی Edge Microgateway مشخص کنید.
پیکربندی SSL در سرور Edge Microgateway
برای آشنایی با پیکربندی TLS در Apigee Edge Microgateway، ویدیوهای زیر را تماشا کنید:
| ویدیو | شرح |
|---|---|
| پیکربندی «امنیت لایه انتقال» یکطرفه Northbound | با پیکربندی TLS در Apigee Edge Microgateway آشنا شوید. این ویدیو نمای کلی TLS و اهمیت آن را ارائه میدهد، TLS را در Edge Microgateway معرفی میکند، و نحوه پیکربندی Northbound One-Way TLS را نشان میدهد. |
| پیکربندی TLS دوطرفه Northbound | این دومین ویدیو درباره پیکربندی TLS در Apigee Edge Microgateway است. این ویدیو نحوه پیکربندی TLS دوطرفه شمالی را توضیح میدهد. |
| پیکربندی «امنیت لایه انتقال» یکطرفه و دوطرفه Southbound | این ویدیو سوم درباره پیکربندی «امنیت لایه انتقال» (TLS) در Apigee Edge Microgateway توضیح میدهد چگونه «امنیت لایه انتقال» (TLS) یکطرفه و دوطرفه خروجی را پیکربندی کنید. |
میتوانید سرور Microgateway را برای استفاده از SSL پیکربندی کنید. برای مثال، با پیکربندی SSL، میتوانید میاناهای برنامهسازی کاربردی را ازطریق Edge Microgateway با پروتکل «https» فراخوانی کنید، مانند این:
https://localhost:8000/myapi
برای پیکربندی SSL در سرور Microgateway، این مراحل را دنبال کنید:
- بااستفاده از ابزار openssl یا هر روشی که ترجیح میدهید، گواهی و کلید SSL تولید یا دریافت کنید.
- مشخصه
edgemicro:sslرا به فایل پیکربندی Edge Microgateway اضافه کنید. برای فهرست کامل گزینهها، جدول زیر را ببینید. برای مثال:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- Edge Microgateway را بازراهاندازی کنید. مراحل شرحدادهشده در ایجاد تغییرات پیکربندی را بسته به اینکه کدام فایل پیکربندی را ویرایش کردهاید (فایل پیشفرض یا فایل پیکربندی زمان اجرا) دنبال کنید.
در اینجا مثالی از بخش edgemicro فایل پیکربندی با SSL پیکربندیشده آورده شده است:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
در اینجا فهرستی از همه گزینههای سرور پشتیبانیشده را مشاهده میکنید:
| گزینه | شرح |
|---|---|
key |
مسیر فایل ca.key (در قالب PEM). |
cert |
مسیر فایل ca.cert (در قالب PEM). |
pfx |
مسیر فایل pfx حاوی کلید خصوصی، گواهی، و گواهیهای CA
کارخواه در قالب PFX. |
passphrase |
رشتهای که حاوی عبارت عبور برای کلید خصوصی یا PFX است. |
ca |
مسیر فایل حاوی فهرست گواهیهای مورداعتماد در قالب PEM. |
ciphers |
رشتهای که رمزهای مورداستفاده را شرح میدهد و با «:» از هم جدا شدهاند. |
rejectUnauthorized |
اگر درست باشد، گواهی سرور با فهرست مراجع صدور گواهی ارائهشده تأیید میشود. اگر درستیسنجی ناموفق باشد، خطایی برگردانده میشود. |
secureProtocol |
روش SSL برای استفاده. برای مثال، SSLv3_method برای اجبار SSL به نسخه ۳. |
servername |
نام سرور برای افزونه TLS «نشانگر نام سرور» (SNI). |
requestCert |
درست برای SSL دوطرفه؛ نادرست برای SSL یکطرفه |
درحال استفاده از گزینههای SSL/TLS کارخواه
میتوانید Edge Microgateway را بهگونهای پیکربندی کنید که هنگام اتصال به نقاط پایانی هدف، کارخواه «امنیت لایه انتقال» یا SSL باشد. در فایل پیکربندی Microgateway، از عنصر targets برای تنظیم گزینههای SSL/TLS استفاده کنید.
این مثال تنظیماتی را ارائه میدهد که برای همه میزبانها اعمال خواهد شد:
edgemicro:
...
targets:
ssl:
client:
key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueدر این مثال، تنظیمات فقط برای میزبان مشخصشده اعمال میشود:
edgemicro:
...
targets:
- host: 'myserver.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueدر اینجا مثالی برای TLS آورده شده است:
edgemicro:
...
targets:
- host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueدر اینجا فهرستی از همه گزینههای مشتری پشتیبانیشده ارائه شده است:
| گزینه | شرح |
|---|---|
pfx |
مسیر فایل pfx حاوی کلید خصوصی، گواهی، و گواهیهای CA
کارخواه در قالب PFX. |
key |
مسیر فایل ca.key (در قالب PEM). |
passphrase |
رشتهای که حاوی عبارت عبور برای کلید خصوصی یا PFX است. |
cert |
مسیر فایل ca.cert (در قالب PEM). |
ca |
مسیر فایل حاوی فهرست گواهیهای مورداعتماد در قالب PEM. |
ciphers |
رشتهای که رمزهای مورداستفاده را شرح میدهد و با «:» از هم جدا شدهاند. |
rejectUnauthorized |
اگر درست باشد، گواهی سرور با فهرست مراجع صدور گواهی ارائهشده تأیید میشود. اگر درستیسنجی ناموفق باشد، خطایی برگردانده میشود. |
secureProtocol |
روش SSL برای استفاده. برای مثال، SSLv3_method برای اجبار SSL به نسخه ۳. |
servername |
نام سرور برای افزونه TLS «نشانگر نام سرور» (SNI). |
سفارشیسازی کردن پراکسی edgemicro-auth
بهطور پیشفرض، Edge Microgateway از پراکسی مستقرشده در Apigee Edge برای اصالتسنجی OAuth2 استفاده میکند.
این پراکسی زمانی مستقر میشود که برای اولینبار edgemicro configure را اجرا میکنید. میتوانید
پیکربندی پیشفرض این پراکسی را تغییر دهید تا پشتیبانی از ادعاهای سفارشی را به JSON Web Token
(JWT) اضافه کنید، انقضای ژتون را پیکربندی کنید، و ژتونهای بازآوری تولید کنید. برای جزئیات، صفحه edgemicro-auth را در GitHub ببینید.
استفاده از سرویس اصالتسنجی سفارشی
بهطور پیشفرض، Edge Microgateway از پراکسی مستقرشده در Apigee Edge برای اصالتسنجی OAuth2 استفاده میکند.
این پراکسی زمانی مستقر میشود که برای اولینبار edgemicro configure را اجرا میکنید. بهطور پیشفرض، نشانی وب این پراکسی در فایل پیکربندی Edge Microgateway بهصورت زیر مشخص شده است:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
اگر میخواهید از سرویس سفارشی خودتان برای رسیدگی به اصالتسنجی استفاده کنید،
مقدار authUri را در فایل پیکربندی تغییر دهید تا به سرویس شما اشاره کند. برای مثال، ممکن است سرویسی داشته باشید که از LDAP برای تأیید هویت استفاده میکند.
درحال مدیریت فایلهای گزارش
Edge Microgateway اطلاعات مربوط به هر درخواست و پاسخ را ثبت میکند. فایلهای گزارش اطلاعات مفیدی برای اشکالزدایی و عیبیابی ارائه میدهند.
محل ذخیره شدن فایلهای گزارش
بهطور پیشفرض، فایلهای گزارش در /var/tmp ذخیره میشوند.
نحوه تغییر دادن فهرست راهنمای فایل گزارش پیشفرض
فهرست راهنمایی که فایلهای گزارش در آن ذخیره میشود در فایل پیکربندی Edge Microgateway مشخص شده است. ایجاد تغییرات پیکربندی را نیز ببینید.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
مقدار dir را تغییر دهید تا فهرست راهنمای فایل گزارش دیگری را مشخص کنید.
ارسال گزارشها به کنسول
میتوانید ثبت گزارش را بهگونهای پیکربندی کنید که اطلاعات گزارش بهجای ارسال به فایل گزارش، به برونداد استاندارد ارسال شود. پرچم to_console را بهصورت زیر روی true تنظیم کنید:
edgemicro:
logging:
to_console: trueبا این تنظیم، گزارشها به خروجی استاندارد ارسال خواهد شد. درحالحاضر نمیتوانید گزارشها را هم به خروجی استاندارد و هم به فایل گزارش ارسال کنید.
نحوه تنظیم سطح ثبت گزارش
میتوانید این سطوح گزارش را تنظیم کنید: اطلاعات، هشدار، و خطا. سطح اطلاعات توصیه میشود. این گزینه همه درخواستها و پاسخهای API را ثبت میکند، و گزینه پیشفرض است.
نحوه تغییر دادن فواصل گزارشگیری
میتوانید این فاصلهها را در فایل پیکربندی Edge Microgateway پیکربندی کنید. ایجاد تغییرات پیکربندی را نیز ببینید.
مشخصههای قابلپیکربندی عبارتاند از:
- stats_log_interval: (پیشفرض: ۶۰) فاصله زمانی، برحسب ثانیه، که در آن سابقه آمار در فایل گزارش API نوشته میشود.
- rotate_interval: (پیشفرض: ۲۴) فاصله زمانی، برحسب ساعت، که فایلهای گزارش چرخانده میشوند. برای مثال:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
روشهای خوب نگهداری فایل گزارش
ازآنجاییکه دادههای فایل گزارش بهمرور زمان انباشته میشوند، Apigee توصیه میکند که از روشهای زیر استفاده کنید:
- چون فایلهای گزارش میتوانند بسیار بزرگ شوند، مطمئن شوید که فهرست راهنمای فایل گزارش فضای کافی داشته باشد. بخشهای زیر را ببینید: محل ذخیره فایلهای گزارش و نحوه تغییر دادن فهرست راهنمای پیشفرض فایل گزارش.
- حداقل هفتهای یکبار فایلهای گزارش را حذف کنید یا به فهرست بایگانی جداگانهای منتقل کنید.
- اگر خطمشی شما حذف گزارشها است، میتوانید از فرمان CLI
edgemicro log -cبرای برداشتن (پاک کردن) گزارشهای قدیمیتر استفاده کنید.
قرارداد نامگذاری فایل گزارش
هر نمونه Edge Microgateway سه نوع فایل گزارش تولید میکند:
- api - همه درخواستها و پاسخهایی را که ازطریق Edge Microgateway جریان مییابند ثبت میکند. شمارندههای میانای برنامهسازی کاربردی (آمار) و خطاها نیز در این فایل ثبت میشوند.
- err - هر چیزی را که به stderr ارسال شده است ثبت میکند.
- out - هر چیزی را که به stdout ارسال شده است ثبت میکند.
این قرارداد نامگذاری است:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
برای مثال:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
درباره محتوای فایل گزارش
اضافهشده در: نسخه ۲.۳.۳
بهطور پیشفرض، سرویس ثبت گزارش JSON پراکسیها، محصولات، و JSON Web Token (JWT) بارگیریشده را حذف میکند. اگر میخواهید این اشیاء را به فایلهای گزارش خروجی دهید،
DEBUG=* را هنگام شروع Edge Microgateway تنظیم کنید. برای مثال:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
محتوای فایل گزارش «api»
فایل گزارش «api» حاوی اطلاعات دقیقی درباره جریان درخواستها و پاسخها ازطریق Edge Microgateway است. نام فایلهای گزارش «api» به این صورت است:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
برای هر درخواست ارسالی به Edge Microgateway، چهار رویداد در فایل گزارش «api» ثبت میشود:
- درخواست ورودی از مشتری
- درخواست خروجی به هدف ارسال شد
- پاسخ ورودی از هدف
- پاسخ ارسالی به کارخواه
هرکدام از این ورودیهای جداگانه با نماد اختصاری نشان داده میشود تا فایلهای گزارش فشردهتر شوند. در اینجا چهار ورودی نمونه آورده شده است که هرکدام یکی از چهار رویداد را نشان میدهد. در فایل گزارش، این خطاها به این شکل هستند (شمارههای خط فقط برای ارجاع در سند هستند و در فایل گزارش نشان داده نمیشوند).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
بیایید یکییکی به آنها نگاه کنیم:
۱. نمونه درخواست ورودی از مشتری:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - مُهر تاریخ یونیکس
- info - بستگی به بافت دارد. بسته به سطح گزارش، میتواند info (اطلاعات)، warn (هشدار)، یا error (خطا) باشد. میتواند stats برای سابقه آمار، warn برای هشدارها، یا error برای خطاها باشد.
- req - رویداد را شناسایی میکند. در این مورد، درخواست از کلاینت.
- m - فعل HTTP استفادهشده در درخواست.
- u - بخشی از نشانی وب که پساز مسیر پایه میآید.
- h - میزبان و شماره درگاهی که Edge Microgateway در آن گوش میدهد.
- r - میزبان و درگاه راه دور که درخواست مشتری از آنجا منشأ گرفته است.
- i - شناسه درخواست. هر چهار ورودی رویداد این شناسه را همرسانی خواهند کرد. به هر درخواست یک شناسه درخواست یکتا اختصاص داده میشود. مرتبط کردن سوابق گزارش با شناسه درخواست میتواند اطلاعات آماری ارزشمندی درباره تأخیر هدف ارائه دهد.
- d - مدت زمان برحسب میلیثانیه از زمانی که درخواست توسط Edge Microgateway دریافت شد. در مثال بالا، پاسخ هدف برای درخواست ۰ پساز ۷ میلیثانیه دریافت شد (خط ۳)، و پاسخ پساز ۴ میلیثانیه دیگر به مشتری ارسال شد (خط ۴). به عبارت دیگر، کل تأخیر درخواست ۱۱ میلیثانیه بود که از این مقدار، ۷ میلیثانیه توسط هدف و ۴ میلیثانیه توسط خود Edge Microgateway صرف شد.
۲. نمونه درخواست خروجی به هدف:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - مُهر تاریخ یونیکس
- info - بستگی به بافت دارد. بسته به سطح گزارش، میتواند info (اطلاعات)، warn (هشدار)، یا error (خطا) باشد. میتواند stats برای سابقه آمار، warn برای هشدارها، یا error برای خطاها باشد.
- treq - رویداد را شناسایی میکند. دراینصورت، درخواست هدف.
- m - فعل HTTP استفادهشده در درخواست هدف.
- u - بخشی از نشانی وب که پساز مسیر پایه میآید.
- h - شماره میزبان و درگاه هدف باطن.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را همرسانی خواهند کرد.
۳. نمونه پاسخ ورودی از هدف
1436403888672 info tres s=200, d=7, i=0
1436403888651 - مُهر تاریخ یونیکس
- info - بستگی به بافت دارد. بسته به سطح گزارش، میتواند info (اطلاعات)، warn (هشدار)، یا error (خطا) باشد. میتواند stats برای سابقه آمار، warn برای هشدارها، یا error برای خطاها باشد.
- tres - رویداد را شناسایی میکند. در این مورد، پاسخ هدف.
- s - وضعیت پاسخهای HTTP.
- d - مدتزمان به میلیثانیه. زمان صرفشده برای فراخوانی میانای برنامهسازی کاربردی توسط هدف.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را همرسانی خواهند کرد.
۴. نمونه پاسخ ارسالی به مشتری
1436403888676 info res s=200, d=11, i=0
1436403888651 - مُهر تاریخ یونیکس
- info - بستگی به بافت دارد. بسته به سطح گزارش، میتواند info (اطلاعات)، warn (هشدار)، یا error (خطا) باشد. میتواند stats برای سابقه آمار، warn برای هشدارها، یا error برای خطاها باشد.
- res - رویداد را شناسایی میکند. در این مورد، پاسخ به کارخواه.
- s - وضعیت پاسخهای HTTP.
- d - مدتزمان به میلیثانیه. این کل زمان صرفشده برای فراخوانی میانای برنامهسازی کاربردی است، ازجمله زمان صرفشده برای میانای برنامهسازی کاربردی هدف و زمان صرفشده توسط خود Edge Microgateway.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را همرسانی خواهند کرد.
زمانبندی فایل گزارش
فایلهای گزارش در بازه زمانی مشخصشده توسط rotate_interval مشخصه پیکربندی میچرخند. ورودیها همچنان به همان فایل گزارش اضافه میشوند تا زمانی که فاصله زمانی چرخش منقضی شود. بااینحال، هربار که Edge Microgateway بازراهاندازی میشود، UID جدیدی دریافت میکند و مجموعه جدیدی از فایلهای گزارش با این UID ایجاد میکند. همچنین روالهای مطلوب نگهداری فایل گزارش را ببینید.
پیامهای خطا
برخیاز ورودیهای گزارش حاوی پیامهای خطا خواهند بود. برای کمک به شناسایی محل و دلیل وقوع خطاها، مرجع خطای Edge Microgateway را ببینید.
مرجع پیکربندی Edge Microgateway
مکان فایل پیکربندی
مشخصههای پیکربندی شرحدادهشده در این بخش در فایل پیکربندی Edge Microgateway قرار دارند. ایجاد تغییرات پیکربندی را نیز ببینید.
مشخصههای edge_config
از این تنظیمات برای پیکربندی تعامل بین نمونه Edge Microgateway و Apigee Edge استفاده میشود.
- bootstrap: (پیشفرض: هیچکدام) نشانی وبی که به سرویس Edge Microgateway-specific درحال اجرا در Apigee Edge اشاره میکند. Edge Microgateway از این سرویس برای
ارتباط با Apigee Edge استفاده میکند. این نشانی وب زمانی برگردانده میشود که فرمان تولید جفت کلید عمومی/خصوصی را اجرا کنید:
edgemicro genkeys. برای جزئیات، راهاندازی و پیکربندی Edge Microgateway را ببینید. - jwt_public_key: (پیشفرض: هیچ) نشانی وبی که به پراکسی Edge Microgateway که در Apigee Edge مستقر شده است اشاره میکند. این پراکسی بهعنوان نقطه پایانی اصالتسنجی برای صدور کد دسترسی امضاشده برای سرویسگیرندگان عمل میکند. این نشانی وب وقتی برگردانده میشود که فرمان استقرار پراکسی را اجرا کنید: edgemicro configure. برای جزئیات، راهاندازی و پیکربندی Edge Microgateway را ببینید.
- quotaUri: اگر میخواهید سهمیهها را ازطریق پراکسی
edgemicro-authکه در سازمانتان مستقر شده است مدیریت کنید، این ویژگی پیکربندی را تنظیم کنید. اگر این ویژگی تنظیم نشده باشد، نقطه پایانی سهمیه بهطور پیشفرض روی نقطه پایانی Edge Microgateway داخلی تنظیم میشود.edge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
مشخصههای edgemicro
این تنظیمات فرایند Edge Microgateway را پیکربندی میکند.
- درگاه: (پیشفرض: ۸۰۰۰) شماره درگاهی که فرایند Edge Microgateway به آن گوش میدهد.
- max_connections: (پیشفرض: -1) حداکثر تعداد اتصالات ورودی همزمان را که Edge Microgateway میتواند دریافت کند مشخص میکند. اگر از این تعداد فراتر بروید، وضعیت زیر برگردانده میشود:
res.statusCode = 429; // Too many requests
- max_connections_hard: (پیشفرض: -1) حداکثر تعداد درخواستهای همزمان که Edge Microgateway میتواند قبلاز قطع اتصال دریافت کند. این تنظیم برای خنثی کردن حملات منع سرویس درنظر گرفته شده است. معمولاً آن را روی عددی بزرگتر از max_connections تنظیم کنید.
-
ورود به سیستم:
-
level: (پیشفرض: error)
- info - همه درخواستها و پاسخهایی را که ازطریق نمونه Edge Microgateway جریان مییابند ثبت میکند.
- warn - فقط پیامهای هشدار را ثبت میکند.
- error - فقط پیامهای خطا را ثبت میکند.
- dir: (پیشفرض: var/tmp/) دایرکتوریای که فایلهای گزارش در آن ذخیره میشوند.
- stats_log_interval: (پیشفرض: ۶۰) فاصله زمانی، برحسب ثانیه، که در آن سوابق آمار در فایل گزارش api نوشته میشود.
- rotate_interval: (پیشفرض: ۲۴) فاصله زمانی، برحسب ساعت، که فایلهای گزارش چرخانده میشوند.
-
level: (پیشفرض: error)
- افزایهها: افزایهها عملکرد را به Edge Microgateway اضافه میکنند. برای جزئیات بیشتر درباره توسعه افزونهها، به توسعه افزونههای سفارشی مراجعه کنید.
- dir: مسیر نسبی از دایرکتوری gateway/. به دایرکتوری plugins/. یا مسیر مطلق.
- sequence: فهرستی از ماژولهای افزونه برای افزودن به نمونه Edge Microgateway شما. واحدها به ترتیبی که در اینجا مشخص شده است اجرا خواهند شد.
-
اشکالزدایی: اشکالزدایی ازراهدور را به فرایند Edge Microgateway اضافه میکند.
- درگاه: شماره درگاهی که باید به آن گوش داده شود. برای مثال، اشکالزدای IDE خود را تنظیم کنید تا به این درگاه گوش دهد.
- args: متغیرهای مستقل برای فرایند اشکالزدایی. برای مثال:
args --nolazy
- config_change_poll_interval: (پیشفرض: ۶۰۰ ثانیه) Edge Microgateway
پیکربندی جدیدی را بهصورت دورهای بار میکند و اگر چیزی تغییر کرده باشد، بارگیری مجدد را اجرا میکند. نظرسنجی
هرگونه تغییر ایجادشده در Edge (تغییرات در محصولات، پراکسیهای آگاه از ریزدروازه، و غیره) و همچنین
تغییرات ایجادشده در فایل پیکربندی محلی را دریافت میکند.
- disable_config_poll_interval: (پیشفرض: false) برای خاموش کردن نظرسنجی تغییر خودکار، روی true تنظیم کنید.
- request_timeout: زمان استراحت را برای درخواستهای هدف تنظیم میکند. زمان استراحت برحسب ثانیه تنظیم شده است. اگر وقفه زمانی رخ دهد، Edge Microgateway با رمز وضعیت ۵۰۴ پاسخ میدهد. (افزودهشده v2.4.x)
- keep_alive_timeout: این ویژگی به شما امکان میدهد زمان اتمام Edge Microgateway را (به میلیثانیه) تنظیم کنید. (پیشفرض: ۵ ثانیه) (نسخه ۳.۰.۶ اضافه شد)
- headers_timeout: این مشخصه مقدار زمانی (به میلیثانیه) را که تجزیهکننده HTTP برای دریافت سرصفحههای کامل HTTP منتظر میماند محدود میکند.
برای مثال:
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
در داخل، پارامتر Node.js را تنظیم میکند
Server.headersTimeoutمشخصه در درخواستها. (پیشفرض: ۵ ثانیه بیشتر از زمان تنظیمشده باedgemicro.keep_alive_timeout. این تنظیم پیشفرض مانع از قطع اشتباهی اتصال توسط متعادلکنندههای بار یا پراکسیها میشود.) (نسخه ۳.۱.۱ اضافه شد) - noRuleMatchAction: (رشته) کنشی که باید انجام شود (اجازه دادن یا رد کردن دسترسی) اگر
قانون مطابقت مشخصشده در افزونه
accesscontrolحلوفصل نشود (مطابقت نداشته باشد). مقادیر معتبر:ALLOWیاDENYپیشفرض:ALLOW(اضافهشده: نسخه ۳.۱.۷) - enableAnalytics: (پیشفرض: true) برای جلوگیری از بار شدن افزونه Analytics، این مشخصه را روی false تنظیم کنید. در این حالت، هیچ فراخوانیای برای تجزیهوتحلیل Apigee Edge انجام نخواهد شد. اگر روی درست تنظیم شود، یا وقتی
این مشخصه ارائه نشده باشد، افزونه Analytics طبق معمول کار خواهد کرد. برای جزئیات،
مشخصههای edgemicro را
ببینید. (در نسخه ۳.۱.۸ اضافه شده است).
مثال:
edgemicro enableAnalytics=false|true
مشخصههای سرصفحه
این تنظیمات نحوه برخورد با برخیاز سرایندهای HTTP را پیکربندی میکند.
- x-forwarded-for: (پیشفرض: true) روی false تنظیم کنید تا از ارسال سرصفحههای x-forwarded-for به هدف جلوگیری شود. توجه داشته باشید که اگر سرصفحه x-forwarded-for در درخواست باشد، مقدار آن روی مقدار client-ip در Edge Analytics تنظیم خواهد شد.
- x-forwarded-host: (پیشفرض: درست) روی نادرست تنظیم کنید تا از ارسال سرصفحههای x-forwarded-host به هدف جلوگیری شود.
- x-request-id: (پیشفرض: true) روی false تنظیم کنید تا از ارسال سرصفحههای x-request-id به هدف جلوگیری شود.
- x-response-time: (پیشفرض: درست) روی نادرست تنظیم کنید تا از ارسال سرایندهای x-response-time به هدف جلوگیری شود.
- via: (پیشفرض: true) روی false تنظیم کنید تا از ارسال سرصفحههای via به هدف جلوگیری شود.
مشخصههای oauth
این تنظیمات نحوه اعمال اصالتسنجی کارخواه توسط Edge Microgateway را پیکربندی میکند.
- allowNoAuthorization: (پیشفرض: false) اگر روی true تنظیم شود، تماسهای API مجازند بدون هیچگونه سرصفحه «مجوز» از Edge Microgateway عبور کنند. این را روی false تنظیم کنید تا سرایند «مجوز» لازم باشد (پیشفرض).
- allowInvalidAuthorization: (پیشفرض: نادرست) اگر روی درست تنظیم شود، فراخوانیهای میانای برنامهسازی کاربردی درصورتیکه کد ارسالشده در سرصفحه «مجوز» نامعتبر یا منقضیشده باشد، مجاز به عبور هستند. این را روی false تنظیم کنید تا به کدهای معتبر نیاز داشته باشید (پیشفرض).
- authorization-header: (پیشفرض: Authorization: Bearer) سرصفحه استفادهشده برای ارسال کد دسترسی به Edge Microgateway. ممکن است بخواهید پیشفرض را در مواردی تغییر دهید که هدف باید از سرایند «مجوز» برای هدف دیگری استفاده کند.
- api-key-header: (پیشفرض: x-api-key) نام سرصفحه یا پارامتر پُرسمان استفادهشده برای ارسال کلید میانای برنامهسازی کاربردی به Edge Microgateway. استفاده از کلید میانای برنامهسازی کاربردی را نیز ببینید.
- keep-authorization-header: (پیشفرض: false) اگر روی true تنظیم شود، سرصفحه Authorization ارسالشده در درخواست به هدف منتقل میشود (حفظ میشود).
- allowOAuthOnly -- اگر روی true تنظیم شود، هر میانای برنامهسازی کاربردی باید یک سرصفحه «مجوز» با «کد دسترسی حامل» داشته باشد. به شما امکان میدهد فقط مدل امنیتی OAuth را مجاز کنید (درحالیکه سازگاری با نسخه قدیمی حفظ میشود). (افزودهشده در نسخه ۲.۴.x)
- allowAPIKeyOnly -- اگر روی true تنظیم شود، هر API باید یک سرصفحه x-api-key (یا یک مکان سفارشی) با یک کلید API داشته باشد.به شما امکان میدهد فقط مدل امنیتی کلید API را مجاز کنید (درحالیکه سازگاری با نسخههای قدیمی حفظ میشود). (اضافهشده در نسخه ۲.۴.x)
- gracePeriod -- این پارامتر به جلوگیری از خطاهای ناشی از اختلافات جزئی بین ساعت سیستم شما و زمانهای «نه قبلاز» (nbf) یا «صادرشده در» (iat) مشخصشده در کد مجوز JWT کمک میکند. این پارامتر را روی تعداد ثانیههایی تنظیم کنید که برای چنین مغایرتهایی مجاز است. (نسخه ۲.۵.۷ اضافه شد)
مشخصههای مختص افزایه
برای جزئیات مربوط به مشخصههای قابلپیکربندی برای هر افزایه، به «استفاده از افزایهها» مراجعه کنید.
پراکسیهای فیلترکننده
میتوانید فیلتر کنید که کدام پراکسیهای آگاه از ریزدروازه توسط نمونه Edge Microgateway پردازش شوند.
وقتی Edge Microgateway شروع میشود، همه پراکسیهای آگاه از microgateway را در سازمانی که با آن مرتبط است بارگیری میکند. از پیکربندی زیر برای محدود کردن پراکسیهایی که
microgateway پردازش خواهد کرد استفاده کنید. برای مثال، این پیکربندی پراکسیهایی را که ریزدروازه پردازش خواهد کرد به سه مورد محدود میکند: edgemicro_proxy-1، edgemicro_proxy-2، و edgemicro_proxy-3:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
فیلتر کردن محصولات براساس نام
از پیکربندی زیر برای محدود کردن تعداد محصولات API که Edge Microgateway
بارگیری و پردازش میکند استفاده کنید. برای فیلتر کردن محصولات بارگیریشده، پارامتر پُرسمان productnamefilter را به API /products فهرستشده در فایل Edge Microgateway *.config.yaml اضافه کنید. برای مثال:
edge_config:
bootstrap: >-
https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test
jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey'
managementUri: 'https://api.enterprise.apigee.com'
vaultName: microgateway
authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
baseUri: >-
https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
bootstrapMessage: Please copy the following property to the edge micro agent config
keySecretMessage: The following credentials are required to start edge micro
products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
توجه داشته باشید که مقدار پارامتر پُرسمان باید در قالب عبارت باقاعده مشخص شود و
با URL کدگذاری شود. برای مثال، عبارت باقاعده ^[Ee]dgemicro.*$ نامهایی مثل موارد زیر را میگیرد:
«edgemicro-test-1»، «edgemicro_demo»، و «Edgemicro_New_Demo». مقدار کدبندیشده نشانی وب، مناسب برای
استفاده در پارامتر پُرسمان، عبارت است از: %5E%5BEe%5Ddgemicro.%2A%24.
برونداد اشکالزدایی زیر نشان میدهد که فقط محصولات فیلترشده بارگیری شدهاند:
...
2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK
...
....
....
{
"apiProduct":[
{
"apiResources":[
],
"approvalType":"auto",
"attributes":[
{
"name":"access",
"value":"public"
}
],
"createdAt":1590549037549,
"createdBy":"k***@g********m",
"displayName":"test upper case in name",
"environments":[
"prod",
"test"
],
"lastModifiedAt":1590549037549,
"lastModifiedBy":"k***@g********m",
"name":"Edgemicro_New_Demo",
"proxies":[
"catchall"
],
"quota":"null",
"quotaInterval":"null",
"quotaTimeUnit":"null",
"scopes":[
]
},
{
"apiResources":[
],
"approvalType":"auto",
"attributes":[
{
"name":"access",
"value":"public"
}
],
"createdAt":1590548328998,
"createdBy":"k***@g********m",
"displayName":"edgemicro test 1",
"environments":[
"prod",
"test"
],
"lastModifiedAt":1590548328998,
"lastModifiedBy":"k***@g********m",
"name":"edgemicro-test-1",
"proxies":[
"Lets-Encrypt-Validation-DoNotDelete"
],
"quota":"null",
"quotaInterval":"null",
"quotaTimeUnit":"null",
"scopes":[
]
},
{
"apiResources":[
"/",
"/**"
],
"approvalType":"auto",
"attributes":[
{
"name":"access",
"value":"public"
}
],
"createdAt":1558182193472,
"createdBy":"m*********@g********m",
"displayName":"Edge microgateway demo product",
"environments":[
"prod",
"test"
],
"lastModifiedAt":1569077897465,
"lastModifiedBy":"m*********@g********m",
"name":"edgemicro_demo",
"proxies":[
"edgemicro-auth",
"edgemicro_hello"
],
"quota":"600",
"quotaInterval":"1",
"quotaTimeUnit":"minute",
"scopes":[
]
}
]
}فیلتر کردن محصولات براساس مشخصههای سفارشی
برای فیلتر کردن محصولات براساس مشخصههای سفارشی:
- در Edge UI، پراکسی edgemicro_auth را در سازمان/محیطی که Edge Microgateway را پیکربندی کردهاید انتخاب کنید.
- در برگه «توسعه»، خطمشی JavaCallout را در ویرایشگر باز کنید.
- مشخصه سفارشی با کلید
products.filter.attributesبا فهرست جداشده با کاما از نامهای مشخصه اضافه کنید. فقط محصولاتی که حاوی هریک از نامهای مشخصه سفارشی باشند به Edge Microgateway برگردانده خواهند شد. - میتوانید با تنظیم کردن مشخصه سفارشی
products.filter.env.enableرویfalse، بررسی فعال بودن محصول برای محیط فعلی را بهصورت اختیاری غیرفعال کنید. (پیشفرض true است.) - (فقط Private Cloud) اگر در Edge برای Private Cloud هستید، ویژگی
org.noncpsرا رویtrueتنظیم کنید تا محصولات را برای محیطهای غیر CPS بکشید.
برای مثال:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout">
<DisplayName>JavaCallout</DisplayName>
<FaultRules/>
<Properties>
<Property name="products.filter.attributes">attrib.one, attrib.two</Property>
<Property name="products.filter.env.enable">false</Property>
<Property name="org.noncps">true</Property>
</Properties>
<ClassName>io.apigee.microgateway.javacallout.Callout</ClassName>
<ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL>
</JavaCallout>درحال پیکربندی بسامد ارسال Analytics
از این پارامترهای پیکربندی برای کنترل کردن فرکانسی که Edge Microgateway دادههای تحلیلی را به Apigee ارسال میکند استفاده کنید:
- bufferSize (اختیاری): حداکثر تعداد سوابق تجزیهوتحلیل که میانگیر میتواند قبلاز شروع به حذف قدیمیترین سوابق نگه دارد. پیشفرض: ۱۰۰۰۰
- batchSize (اختیاری): حداکثر اندازه دستهای از سوابق تجزیهوتحلیل ارسالشده به Apigee. پیشفرض: ۵۰۰
- flushInterval (اختیاری): تعداد میلیثانیههای بین هر تخلیه دستهای از رکوردهای تجزیهوتحلیل ارسالشده به Apigee. پیشفرض: ۵۰۰۰
برای مثال:
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
درحال پنهان کردن دادههای تجزیهوتحلیل
پیکربندی زیر از نمایش اطلاعات مسیر درخواست در Edge analytics جلوگیری میکند. برای پنهان کردن شناسه URI درخواست و/یا مسیر درخواست، موارد زیر را به پیکربندی microgateway اضافه کنید. توجه داشته باشید که URI شامل بخشهای نام میزبان و مسیر درخواست است.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
جداسازی فراخوانیهای میانای برنامهسازی کاربردی در Edge Analytics
میتوانید افزونه تجزیهوتحلیل را برای جداسازی مسیر API خاصی پیکربندی کنید تا بهعنوان پراکسی جداگانهای در داشبوردهای Edge Analytics نشان داده شود. برای مثال، میتوانید یک میانای برنامهسازی کاربردی بررسی سلامت را در داشبورد جدا کنید تا با فراخوانیهای واقعی پراکسی میانای برنامهسازی کاربردی اشتباه گرفته نشود. در داشبورد Analytics، پراکسیهای تفکیکشده از این الگوی نامگذاری پیروی میکنند:
edgemicro_proxyname-health
تصویر زیر دو پراکسی تفکیکشده را در داشبورد Analytics نشان میدهد: edgemicro_hello-health و
edgemicro_mock-health:

از این پارامترها برای جدا کردن مسیرهای نسبی و مطلق در داشبورد Analytics بهعنوان پراکسیهای جداگانه استفاده کنید:
- relativePath (اختیاری): مسیر نسبی را برای تفکیک در داشبورد Analytics مشخص میکند. برای مثال، اگر
/healthcheckرا مشخص کنید، همه فراخوانیهای API که حاوی مسیر/healthcheckباشند بهصورتedgemicro_proxyname-healthدر داشبورد نشان داده میشوند. توجه داشته باشید که این پرچم مسیر پایه پراکسی را نادیده میگیرد. برای تفکیک براساس مسیر کامل، ازجمله مسیر پایه، از پرچمproxyPathاستفاده کنید. - proxyPath (اختیاری): مسیر کامل پراکسی میانای برنامهسازی کاربردی را، شامل مسیر پایه پراکسی،
برای تفکیک در داشبورد Analytics مشخص میکند. برای مثال، اگر
/mocktarget/healthcheckرا مشخص کنید، که در آن/mocktargetمسیر پایه پراکسی است، همه فراخوانیهای API با مسیر/mocktarget/healthcheckبهصورتedgemicro_proxyname-healthدر داشبورد نشان داده خواهند شد.
برای مثال، در پیکربندی زیر، هر مسیر API که حاوی /healthcheck باشد، توسط افزونه تجزیهوتحلیل جدا خواهد شد. یعنی /foo/healthcheck و /foo/bar/healthcheck
بهعنوان پراکسی جداگانهای بهنام edgemicro_proxyname-health در داشبورد تجزیهوتحلیل تفکیک خواهند شد.
analytics:
uri: >-
https://xx/edgemicro/ax/org/docs/environment/test
bufferSize: 100
batchSize: 50
flushInterval: 500
relativePath: /healthcheckدر پیکربندی زیر، هر میانای برنامهسازی کاربردی با مسیر پراکسی /mocktarget/healthcheck
بهعنوان پراکسی جداگانهای بهنام edgemicro_proxyname-health در
داشبورد تجزیهوتحلیل تفکیک خواهد شد.
analytics:
uri: >-
https://xx/edgemicro/ax/org/docs/environment/test
bufferSize: 100
batchSize: 50
flushInterval: 500
proxyPath: /mocktarget/healthcheckراهاندازی Edge Microgateway پشت دیوار آتش شرکت
استفاده از پراکسی HTTP برای ارتباط با Apigee Edge
در نسخه ۳.۱.۲ اضافه شده است.
برای استفاده از پراکسی HTTP برای ارتباط بین Edge Microgateway و Apigee Edge، کارهای زیر را انجام دهید:
- متغیرهای محیطی
HTTP_PROXY،HTTPS_PROXY، وNO_PROXYرا تنظیم کنید. این متغیرها میزبانهای هر پراکسی HTTP را که میخواهید برای ارتباط با Apigee Edge استفاده کنید، یا اینکه کدام میزبانها نباید ارتباط با Apigee Edge را مدیریت کنند، کنترل میکنند. برای مثال:export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
توجه داشته باشید که
NO_PROXYمیتواند فهرستی از دامنههای جداشده با کاما باشد که Edge Microgateway نباید به آنها پروکسی کند.برای اطلاعات بیشتر درباره این متغیرها، https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables را ببینید
- Edge Microgateway را بازراهاندازی کنید.
استفاده از پروکسی HTTP برای ارتباط هدف
در نسخه ۳.۱.۲ اضافه شده است.
برای استفاده از پراکسی HTTP برای ارتباط بین Edge Microgateway و هدفهای پسبک، کارهای زیر را انجام دهید:
- پیکربندی زیر را به فایل پیکربندی microgateway اضافه کنید:
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | falseمکان:
- tunnel: (اختیاری) وقتی درست باشد، Edge Microgateway از روش HTTP CONNECT برای تونل کردن درخواستهای HTTP
ازطریق یک اتصال TCP استفاده میکند. (اگر متغیرهای محیطی، همانطور که در زیر ذکر شده است، برای پیکربندی پراکسی TLS فعال باشند، همین امر صادق است). پیشفرض:
false - url: نشانی وب پروکسی HTTP.
- bypass: (اختیاری) یک یا چند نشانی وب میزبان هدف جداشده با کاما را مشخص میکند که باید پراکسی HTTP را دور بزنند. اگر این ویژگی تنظیم نشده است، از متغیر محیطی NO_PROXY برای مشخص کردن نشانیهای وب هدف برای دور زدن استفاده کنید.
- enabled: اگر درست باشد و
proxy.urlتنظیم شده باشد، از مقدارproxy.urlبرای پراکسی HTTP استفاده کنید. اگر درست باشد وproxy.urlتنظیم نشده باشد، از پراکسیهای مشخصشده در متغیرهای محیطی پراکسی HTTPHTTP_PROXYوHTTPS_PROXYاستفاده کنید، همانطور که در استفاده از پراکسی HTTP برای ارتباط با Apigee Edge شرح داده شده است.
برای مثال:
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true - tunnel: (اختیاری) وقتی درست باشد، Edge Microgateway از روش HTTP CONNECT برای تونل کردن درخواستهای HTTP
ازطریق یک اتصال TCP استفاده میکند. (اگر متغیرهای محیطی، همانطور که در زیر ذکر شده است، برای پیکربندی پراکسی TLS فعال باشند، همین امر صادق است). پیشفرض:
- Edge Microgateway را بازراهاندازی کنید.
استفاده از نویسههای عام در پراکسیهای آگاه از Microgateway
میتوانید از یک یا چند نویسه عام «*» در مسیر پایه یک پراکسی
edgemicro_* (آگاه از Microgateway) استفاده کنید. برای مثال، مسیر پایه
/team/*/members به کارخواهها اجازه میدهد
https://[host]/team/blue/members و
https://[host]/team/green/members را بدون نیاز به ایجاد پراکسیهای میانای برنامهسازی کاربردی جدید
برای پشتیبانی از تیمهای جدید فراخوانی کنند. توجه داشته باشید که از /**/ پشتیبانی نمیشود.
مهم: Apigee از استفاده از نویسه عام «*» بهعنوان
اولین عنصر مسیر پایه پشتیبانی نمیکند. برای مثال، این مورد پشتیبانی نمیشود: جستجوی /*/.
درحال چرخش کلیدهای JWT
مدتی پساز تولید اولیه JWT، ممکن است لازم باشد جفت کلید عمومی/خصوصی ذخیرهشده در KVM رمزگذاریشده Edge را تغییر دهید. به این فرایند تولید جفت کلید جدید، چرخش کلید میگویند.
نحوه استفاده Edge Microgateway از JWT
JSON Web Token (JWT) یک استاندارد دادهواحد است که در RFC7519 شرح داده شده است. JWT روشی برای امضای مجموعهای از ادعاها ارائه میدهد، که میتواند بهطور قابلاعتمادی توسط گیرنده JWT تأیید شود.
میتوانید بااستفاده از CLI یک JWT تولید کنید و از آن در سرصفحه «مجوز» تماسهای API بهجای کلید API استفاده کنید. برای مثال:
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
برای کسب اطلاعات درباره تولید کردن JWT با میانای خط فرمان، به تولید کردن کد مراجعه کنید.
تغییر کلید چیست؟
مدتی پساز تولید اولیه JWT، ممکن است لازم باشد جفت کلید عمومی/خصوصی ذخیرهشده در KVM رمزگذاریشده Edge را تغییر دهید. به این فرایند تولید جفت کلید جدید، چرخش کلید میگویند. وقتی کلیدها را میچرخانید، جفت کلید خصوصی/عمومی جدیدی تولید میشود و در KVM «microgateway» در سازمان/محیط Apigee Edge شما ذخیره میشود. بهعلاوه، کلید عمومی قدیمی همراه با مقدار شناسه کلید اصلی آن حفظ میشود.
برای تولید JWT، Edge از اطلاعات ذخیرهشده در KVM رمزگذاریشده استفاده میکند. یک
KVM بهنام microgateway ایجاد شد و وقتی برای اولینبار Edge Microgateway را راهاندازی (پیکربندی) کردید،
با کلیدهایی پر شد. از کلیدهای موجود در KVM برای امضا و رمزگذاری JWT استفاده میشود.
کلیدهای KVM شامل موارد زیر است:
-
private_key - جدیدترین (آخرین ایجادشده) کلید خصوصی RSA که برای امضای JWTها استفاده میشود.
-
public_key - جدیدترین (اخیراً ایجادشده) گواهی استفادهشده برای تأیید JWTهای امضاشده با private_key.
-
private_key_kid - جدیدترین (آخرین ایجادشده) شناسه کلید خصوصی. این شناسه کلید با مقدار private_key مرتبط است و برای پشتیبانی از چرخش کلید استفاده میشود.
-
public_key1_kid - جدیدترین (آخرین ایجادشده) شناسه کلید عمومی. این کلید با مقدار public_key1 مرتبط است و برای پشتیبانی از چرخش کلید استفاده میشود. این مقدار با شناسه کلید خصوصی یکسان است.
-
public_key1 - جدیدترین کلید عمومی (که اخیراً ایجاد شده است).
وقتی چرخش کلید را انجام میدهید، مقادیر کلید موجود در نقشه جایگزین میشوند و کلیدهای جدید برای حفظ کلیدهای عمومی قدیمی اضافه میشوند. برای مثال:
-
public_key2_kid - شناسه کلید عمومی قدیمی. این کلید با مقدار public_key2 مرتبط است و برای پشتیبانی از چرخش کلید استفاده میشود.
-
public_key2 - کلید عمومی قدیمی.
JWTهای ارائهشده برای درستیسنجی بااستفاده از کلید عمومی جدید درستیسنجی خواهند شد. اگر درستیسنجی ناموفق باشد، از کلید عمومی قدیمی استفاده خواهد شد تا زمانی که JWT منقضی شود (پساز فاصله token_expiry*، بهطور پیشفرض ۳۰ دقیقه). بهاینترتیب، میتوانید کلیدها را بدون ایجاد اختلال فوری در ترافیک میانای برنامهسازی کاربردی «بچرخانید».
نحوه انجام چرخش کلید
این بخش نحوه انجام چرخش کلید را توضیح میدهد.
- برای ارتقا دادن KVM، از فرمان
edgemicro upgradekvmاستفاده کنید. برای جزئیات درباره اجرای این فرمان، به ارتقا دادن KVM مراجعه کنید. فقط یکبار باید این مرحله را انجام دهید. - برای ارتقا دادن پروکسی edgemicro-oauth، از فرمان
edgemicro upgradeauthاستفاده کنید. برای جزئیات مربوط به اجرای این فرمان، ارتقا دادن پراکسی edgemicro-auth را ببینید. فقط یکبار باید این مرحله را انجام دهید. - خط زیر را به فایل
~/.edgemicro/org-env-config.yamlاضافه کنید، که در آن باید همان سازمان و محیطی را که برای استفاده از ریزدروازه پیکربندی کردهاید مشخص کنید:jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
فرمان چرخش کلید را برای چرخاندن کلیدها اجرا کنید. برای جزئیات مربوط به این فرمان، کلیدهای چرخشی را ببینید.
edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET
برای مثال:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
پساز چرخش کلید، Edge چندین کلید را به Edge Microgateway برمیگرداند. توجه داشته باشید که در مثال زیر، هر کلید مقدار «kid» (شناسه کلید) یکتایی دارد. سپس ریزدروازه از این کلیدها برای اعتبارسنجی کردن توکنهای مجوز استفاده میکند. اگر اعتبارسنجی کد ناموفق باشد، ریزدروازه بررسی میکند که آیا کلید قدیمیتری در مجموعه کلید وجود دارد یا نه و آن کلید را امتحان میکند. قالب کلیدهای برگرداندهشده JSON Web Key (JWK) است. میتوانید درباره این قالب در RFC 7517 بخوانید.
{
"keys": [
{
"kty": "RSA",
"n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ",
"e": "AQAB",
"kid": "2"
},
{
"kty": "RSA",
"n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw",
"e": "AQAB",
"kid": "1"
}
]
}پیکربندی کردن تأخیر «نه قبلاز»
برای نسخههای ۳.۱.۵ و قبلاز آن، کلید خصوصی جدیدی که با فرمان rotatekey تولید میشد بلافاصله اعمال میشد و توکنهای جدید تولیدشده با کلید خصوصی جدید امضا میشدند. بااینحال،
کلید عمومی جدید فقط هر ۱۰ دقیقه یکبار (بهطور پیشفرض)
هنگام بازآوری پیکربندی ریزدروازه برای نمونههای Edge Microgateway دردسترس قرار میگرفت. بهدلیل این تأخیر بین امضای ژتون
و بازآوری نمونه microgateway، ژتونهای امضاشده با جدیدترین کلید تا زمانی که
همه نمونهها جدیدترین کلید عمومی را دریافت نکنند رد میشوند.
در مواردی که چندین نمونه ریزدروازه وجود دارد، تأخیر کلید عمومی گاهی اوقات منجر به خطاهای زمان اجرای متناوب با وضعیت ۴۰۳ میشود، زیرا اعتبارسنجی رمز در یک نمونه موفقیتآمیز است، اما در نمونه دیگر تا زمانی که همه نمونهها بازآوری نشوند، ناموفق است.
از نسخه ۳.۱.۶، پرچم جدیدی در فرمان rotatekey به شما امکان میدهد تأخیری را برای فعال شدن کلید خصوصی جدید مشخص کنید، که این کار به همه نمونههای ریزدروازه زمان میدهد تا بازآوری شوند و کلید عمومی جدید را دریافت کنند. پرچم جدید --nbf است که مخفف «نه قبلاز» است.
این پرچم مقدار عدد صحیح میگیرد، تعداد دقیقههایی که باید تأخیر داشته باشد.
در مثال زیر، تأخیر روی ۱۵ دقیقه تنظیم شده است:
edgemicro rotatekey -o docs -e test \ -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \ -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \ --nbf 15
توجه داشته باشید که روش خوب این است که تأخیر را بیشتر از تنظیم پیکربندی config_change_poll_internal تنظیم کنید،
که بهطور پیشفرض ۱۰ دقیقه است. همچنین مشخصههای edgemicro را ببینید.
درحال فیلتر کردن پراکسیهای بارگیریشده
بهطور پیشفرض، Edge Microgateway همه پراکسیهای موجود در سازمان Edge شما را که با پیشوند نامگذاری «edgemicro_» شروع میشوند بارگیری میکند. میتوانید این پیشفرض را تغییر دهید تا پراکسیهایی را بارگیری کنید که نامشان با الگویی مطابقت دارد.
- فایل پیکربندی Edge Micro را باز کنید:
~/.edgemicro/org-env-config.yaml - عنصر proxyPattern را زیر edge_config اضافه کنید. برای مثال، الگوی زیر
پراکسیهایی مثل edgemicro_foo، edgemicro_fast، و edgemicro_first را بارگیری میکند.
edge_config: … proxyPattern: edgemicro_f*
مشخص کردن محصولات بدون پراکسیهای میانای برنامهسازی کاربردی
در Apigee Edge، میتوانید محصول میانای برنامهسازی کاربردیای ایجاد کنید که حاوی هیچ پراکسی میانای برنامهسازی کاربردیای نباشد. این پیکربندی محصول به کلید میانای برنامهسازی کاربردی مرتبط با آن محصول اجازه میدهد با هر پراکسی مستقرشده در سازمانتان کار کند. از نسخه ۲.۵.۴، Edge Microgateway از این پیکربندی محصول پشتیبانی میکند.
اشکالزدایی و عیبیابی
درحال اتصال به اشکالزدا
میتوانید Edge Microgateway را با اشکالزدایی مثل node-inspector اجرا کنید. این برای عیبیابی و اشکالزدایی افزونههای سفارشی مفید است.
- Edge Microgateway را در حالت اشکالزدایی بازراهاندازی کنید. برای انجام این کار،
DEBUG=*را به ابتدای فرمانstartاضافه کنید:DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
برای هدایت خروجی اشکالزدایی به فایل، میتوانید از این فرمان استفاده کنید:
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- اشکالزدا را راهاندازی کنید و آن را روی شماره درگاه فرایند اشکالزدایی تنظیم کنید.
- اکنون میتوانید کد Edge Microgateway را گامبهگام اجرا کنید، نقاط توقف تنظیم کنید، عبارتها را تماشا کنید، و غیره.
میتوانید پرچمهای استاندارد Node.js مربوط به حالت اشکالزدایی را مشخص کنید. برای مثال،
--nolazy به اشکالزدایی کد ناهمگام کمک میکند.
درحال بررسی فایلهای گزارش
اگر مشکلی دارید، حتماً فایلهای گزارش را برای جزئیات اجرا و اطلاعات خطا بررسی کنید. برای جزئیات بیشتر، به مدیریت فایلهای گزارش مراجعه کنید.
استفاده از امنیت کلید میانای برنامهسازی کاربردی
کلیدهای میانای برنامهسازی کاربردی سازوکار سادهای برای اصالتسنجی کردن کارخواههایی که به Edge Microgateway درخواست ارسال میکنند ارائه میدهد. میتوانید با کپی کردن مقدار «کلید مصرفکننده» (که «شناسه کارخواه» نیز نامیده میشود) از محصول Apigee Edge که شامل پراکسی اصالتسنجی Edge Microgateway است، کلید میانای برنامهسازی کاربردی دریافت کنید.
ذخیره کلیدها در حافظه پنهان
کلیدهای میانای API با رمزیابهای دارنده مبادله میشوند که در حافظه نهان ذخیره میشوند. میتوانید با تنظیم
سرایند Cache-Control: no-cache در درخواستهای ورودی به Edge
Microgateway، ذخیرهسازی در حافظه نهان را غیرفعال کنید.
استفاده از کلید میانای برنامهسازی کاربردی
میتوانید کلید میانای برنامهسازی کاربردی را در درخواست میانای برنامهسازی کاربردی بهعنوان پارامتر پُرسمان یا در سرصفحه ارسال کنید. بهطور پیشفرض،
نام پارامتر پُرسمان و سرایند هر دو x-api-key است.
نمونه پارامتر پُرسمان:
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
نمونه سرایند:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
درحال پیکربندی نام کلید میانای برنامهسازی کاربردی
بهطور پیشفرض، x-api-key نامی است که هم برای سرصفحه کلید API و هم برای پارامتر پُرسمان استفاده میشود.
میتوانید این پیشفرض را در فایل پیکربندی تغییر دهید، همانطور که در ایجاد تغییرات پیکربندی توضیح داده شده است. برای مثال، برای تغییر دادن
نام به apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
در این مثال، هم پارامتر پُرسمان و هم نام سرصفحه به apiKey تغییر کرده است. نام
x-api-key دیگر در هیچکدام از این موارد کار نخواهد کرد. همچنین ببینید
ایجاد تغییرات پیکربندی.
برای مثال:
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
برای اطلاعات بیشتر درباره استفاده از کلیدهای میانای برنامهسازی کاربردی با درخواستهای پراکسی، به Secure Edge Microgateway مراجعه کنید.
فعال کردن کدهای پاسخ بالادستی
بهطور پیشفرض، افزونه oauth فقط رمزهای وضعیت خطای 4xx را برمیگرداند اگر
پاسخ رمز وضعیت 200 نباشد. میتوانید این رفتار را تغییر دهید تا همیشه
کد دقیق 4xx یا 5xx را بسته به خطا برگرداند.
برای فعال کردن این ویژگی، ویژگی oauth.useUpstreamResponse: true را به پیکربندی Edge Microgateway خود اضافه کنید. برای مثال:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
استفاده از امنیت کد OAuth2
این بخش توضیح میدهد که چگونه میتوانید کدهای دسترسی OAuth2 و کدهای بازآوری را دریافت کنید. از کد دسترسی برای برقراری تماسهای امن میانای برنامهسازی کاربردی ازطریق ریزدروازه استفاده میشود. از ژتونهای بازآوری برای دریافت ژتونهای دسترسی جدید استفاده میشود.
نحوه دریافت کد دسترسی
این بخش توضیح میدهد که چگونه از پراکسی edgemicro-auth برای دریافت کد دسترسی استفاده کنید.
همچنین میتوانید بااستفاده از فرمان edgemicro token CLI کد دسترسی دریافت کنید.
برای جزئیات مربوط به میانای خط فرمان، به مدیریت کردن توکنها مراجعه کنید.
میانای برنامهسازی کاربردی ۱: ارسال اطلاعات کاربری بهعنوان پارامترهای بدنه
نامهای سازمان و محیط خود را در نشانی وب جایگزین کنید و مقادیر «شناسه مصرفکننده» و «رمز مصرفکننده» را که از برنامه توسعهدهنده در Apigee Edge بهدست آمده است، جایگزین پارامترهای بدنه client_id و client_secret کنید:
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \
-d '{"grant_type": "client_credentials", "client_id": "your_client_id", \
"client_secret": "your_client_secret"}' -H "Content-Type: application/json"
میانای برنامهسازی کاربردی ۲: ارسال اطلاعات کاربری در سرصفحه Basic Auth
اعتبارنامه کارخواه را بهعنوان سرصفحه «اصالتسنجی پایه» و
grant_type را بهعنوان پارامتر فرم ارسال کنید. این فرم فرمان در
RFC 6749: چارچوب مجوز OAuth 2.0 نیز مورد بحث قرار گرفته است.
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
نمونه خروجی
میانای برنامهسازی کاربردی پاسخ JSON برمیگرداند. توجه داشته باشید که هیچ تفاوتی بین ویژگیهایtoken و
access_token وجود ندارد. میتوانید از هرکدام استفاده کنید.
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
نحوه دریافت ژتون بازآوری
برای دریافت ژتون بازآوری، یک فراخوانی میانای برنامهسازی کاربردی به نقطه پایانی /token از پراکسی edgemicro-auth انجام دهید. باید این فراخوانی میانای برنامهسازی کاربردی را با نوع اعطای مجوز password انجام دهید. مراحل زیر این فرایند را توضیح میدهد.
- بااستفاده از میانای برنامهسازی کاربردی
/token، یک کد دسترسی و کد بازآوری دریافت کنید. توجه داشته باشید که نوع اعطای مجوزpasswordاست:curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'میانای برنامهسازی کاربردی یک کد دسترسی و یک ژتون بازآوری برمیگرداند. پاسخ شبیه به این است:
{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": "108000", "refresh_token": "your-refresh-token", "refresh_token_expires_in": "431999", "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" } - اکنون میتوانید با فراخوانی نقطه پایانی
/refreshدر همان API، از کد بازآوری برای دریافت کد دسترسی جدید استفاده کنید. برای مثال:curl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'میانای برنامهسازی کاربردی کد دسترسی جدیدی برمیگرداند. پاسخ شبیه به این است:
{ "token": "your-new-access-token" }
پایش همیشگی
Forever ابزاری در Node.js است که برنامه Node.js را درصورت توقف یا بروز خطا در فرایند بهطور خودکار بازراهاندازی میکند. Edge Microgateway دارای فایل forever.json است که میتوانید آن را پیکربندی کنید تا کنترل کنید Edge Microgateway چند بار و با چه فاصلههای زمانی باید بازراهاندازی شود. این فایل یک سرویس Forever بهنام forever-monitor را پیکربندی میکند که Forever را بهصورت برنامهنویسیشده مدیریت میکند.
میتوانید فایل forever.json را در دایرکتوری نصب ریشه Edge Microgateway پیدا کنید. Where is Edge Microgateway installed (Edge Microgateway کجا نصب شده است) را ببینید. برای جزئیات مربوط به گزینههای پیکربندی، به مستندات forever-monitor مراجعه کنید.
فرمان edgemicro forever شامل پرچمهایی است که به شما امکان میدهد مکان فایل forever.json (پرچم -f) را مشخص کنید و فرایند نظارت Forever (پرچم -a) را شروع/متوقف کنید. برای مثال:
edgemicro forever -f ~/mydir/forever.json -a start
برای اطلاعات بیشتر، به پایش Forever در مرجع میانای خط فرمان مراجعه کنید.
مشخص کردن نقطه پایانی فایل پیکربندی
اگر چند نمونه Edge Microgateway اجرا میکنید، شاید بخواهید پیکربندیهای آنها را از یک مکان مدیریت کنید. میتوانید این کار را با مشخص کردن نقطه پایانی HTTP که Edge Micro میتواند فایل پیکربندی خود را از آن بارگیری کند انجام دهید. وقتی Edge Micro را بااستفاده از پرچم -u راهاندازی میکنید، میتوانید این نقطه پایانی را مشخص کنید.
برای مثال:
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
که در آن نقطه پایان mgconfig محتوای فایل پیکربندی شما را برمیگرداند. این فایلی است که بهطور پیشفرض در ~/.edgemicro قرار دارد و از این قاعده نامگذاری پیروی میکند: org-env-config.yaml.
درحال غیرفعال کردن میانگیری دادههای اتصال TCP
میتوانید از مشخصه پیکربندی nodelay برای غیرفعال کردن میانگیر دادهها برای
اتصالهای TCP استفادهشده توسط Edge Microgateway استفاده کنید.
بهطور پیشفرض، اتصالهای TCP از الگوریتم
Nagle برای میانگیر کردن دادهها قبلاز ارسال آنها استفاده میکنند. تنظیم nodelay روی true،
این رفتار را غیرفعال میکند (هر بار که socket.write() فراخوانی شود،
دادهها بلافاصله ارسال میشوند). برای جزئیات بیشتر، اسناد Node.js را نیز ببینید.
برای فعال کردن nodelay، فایل پیکربندی Edge Micro را بهصورت زیر ویرایش کنید:
edgemicro:
nodelay: true
port: 8000
max_connections: 1000
config_change_poll_interval: 600
logging:
level: error
dir: /var/tmp
stats_log_interval: 60
rotate_interval: 24
درحال اجرای Edge Microgateway در حالت مستقل
میتوانید Edge Microgateway را کاملاً جدا از هرگونه وابستگی به Apigee Edge اجرا کنید. این سناریو که حالت مستقل نامیده میشود، به شما امکان میدهد Edge Microgateway را بدون اتصال اینترنت اجرا و آزمایش کنید.
در حالت مستقل، ویژگیهای زیر کار نمیکنند، زیرا به اتصال به Apigee Edge نیاز دارند:
- OAuth و کلید میانای برنامهسازی کاربردی
- سهمیه
- Analytics
ازسوی دیگر، افزایههای سفارشی و توقف جهش بهطور عادی کار میکنند، زیرا به اتصال به Apigee Edge نیاز ندارند. علاوهبراین، افزونه جدیدی بهنام extauth به شما امکان میدهد
فراخوانیهای API به ریزدروازه را با JWT در حالت مستقل مجاز کنید.
درحال پیکربندی و راهاندازی درگاه
برای اجرای Edge Microgateway در حالت مستقل:
- فایل پیکربندی را با نام زیر ایجاد کنید:
$HOME/.edgemicro/$ORG-$ENV-config.yamlبرای مثال:
vi $HOME/.edgemicro/foo-bar-config.yaml
- کد زیر را در فایل جایگذاری کنید:
edgemicro: port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - extauth - spikearrest headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true extauth: publickey_url: https://www.googleapis.com/oauth2/v1/certs spikearrest: timeUnit: second allow: 10 buffersize: 0 - متغیر محیطی زیر را با مقدار «۱» صادر کنید:
export EDGEMICRO_LOCAL=1
- فرمان
startزیر را اجرا کنید و مقادیر را برای نمونهسازی پراکسی محلی ارائه دهید:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
مکان:
- $ORG نام «سازمان» است که در نام فایل پیکربندی استفاده کردهاید.
- $ENV نام «env» است که در نام فایل پیکربندی استفاده کردهاید.
- $LOCAL_PROXY_NAME نام پراکسی محلی است که ایجاد خواهد شد. میتوانید از هر نامی که میخواهید استفاده کنید.
- $LOCAL_PROXY_VERSION شماره نسخه پراکسی است.
- $TARGET_URL نشانی وب هدف پراکسی است. (هدف سرویسی است که پراکسی آن را فراخوانی میکند.)
- $BASE_PATH مسیر پایه پراکسی است. این مقدار باید با خط مورب رو به جلو شروع شود. برای مسیر پایه ریشه، فقط یک خط مورب رو به جلو مشخص کنید؛ برای مثال، «/».
برای مثال:
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- پیکربندی را آزمایش کنید.
curl http://localhost:8000/echo { "error" : "missing_authorization" }چون افزونه
extauthدر فایلfoo-bar-config.yamlاست، خطای «missing_authorization» دریافت میکنید. این افزونه JWT را که باید در سرصفحه «مجوز» فراخوانی میانای برنامهسازی کاربردی وجود داشته باشد، اعتبارسنجی میکند. در بخش بعدی، یک JWT دریافت خواهید کرد که به فراخوانیهای API اجازه میدهد بدون خطا انجام شوند.
مثال: دریافت کردن نمودافزار مجوز
مثال زیر نشان میدهد که چگونه میتوان یک JWT را از نقطه پایانی JWT Edge Microgateway در Apigee Edge (edgemicro-auth/jwkPublicKeys) دریافت کرد.
این نقطه پایانی زمانی مستقر میشود که شما یک راهاندازی و پیکربندی استاندارد از Edge Microgateway انجام دهید.
برای دریافت JWT از نقطه پایانی Apigee، ابتدا باید راهاندازی استاندارد Edge Microgateway را انجام دهید و
به اینترنت متصل باشید. نقطه پایانی Apigee در اینجا فقط برای اهداف نمونه استفاده میشود
و الزامی نیست. درصورت تمایل میتوانید از نقطه پایانی توکن JWT دیگری استفاده کنید. اگر این کار را انجام دهید، باید JWT را بااستفاده از
میانای برنامهسازی کاربردی ارائهشده برای آن نقطه پایانی دریافت کنید.
مراحل زیر نحوه دریافت کردن توکن بااستفاده از نقطه پایانی edgemicro-auth/jwkPublicKeys را توضیح میدهد:.
- برای استقرار پراکسی
edgemicro-authدر سازمان/محیط خود در Apigee Edge، باید راهاندازی و پیکربندی استاندارد Edge Microgateway را انجام دهید. اگر قبلاً این مرحله را انجام دادهاید، نیازی به تکرار آن نیست. - اگر Edge Microgateway را در Apigee Cloud مستقر کردهاید، باید به اینترنت متصل باشید تا بتوانید JWT را از این نقطه پایانی دریافت کنید.
-
توقف Edge Microgateway:
edgemicro stop
- در فایل پیکربندی که قبلاً ایجاد کردهاید (
$HOME/.edgemicro/org-env-config.yaml)، مشخصهextauth:publickey_urlرا به نقطه پایانیedgemicro-auth/jwkPublicKeysدر سازمان/محیط Apigee Edge خودتان هدایت کنید. برای مثال:extauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
Edge Microgateway را مانند قبل بااستفاده از نامهای org/env که در نام فایل پیکربندی استفاده کردید بازراهاندازی کنید. برای مثال:
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
یک کد JWT از نقطه پایان مجوز دریافت کنید. چون از نقطه پایانی
edgemicro-auth/jwkPublicKeysاستفاده میکنید، میتوانید از این فرمان CLI استفاده کنید:
میتوانید بااستفاده از فرمان edgemicro token یا میانای برنامهسازی کاربردی، JWT برای Edge Microgateway تولید کنید. برای مثال:
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
مکان:
- your_org نام سازمان Apigee شما است که قبلاً Edge Microgateway را برای آن پیکربندی کردهاید.
- your_env محیطی در سازمان است.
- گزینه
i«کلید مصرفکننده» را از برنامه توسعهدهندهای که محصولی دارد که شامل پراکسیedgemicro-authاست مشخص میکند. - گزینه
s«رمز مصرفکننده» را از برنامه توسعهدهندهای که محصولی شامل پراکسیedgemicro-authدارد مشخص میکند.
این فرمان از Apigee Edge میخواهد تا JWT تولید کند که سپس میتوان از آن برای درستیسنجی تماسهای API استفاده کرد.
تولید کردن توکن را نیز ببینید.آزمایش پیکربندی مستقل
برای آزمایش پیکربندی، میانای برنامهسازی کاربردی را با کد اضافهشده در سرصفحه «مجوز» بهصورت زیر فراخوانی کنید:
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
مثال:
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
خروجی نمونه:
{
"headers":{
"user-agent":"curl/7.54.0",
"accept":"*/*",
"x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
"client_received_start_timestamp":"1535134472699",
"x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==",
"target_sent_start_timestamp":"1535134472702",
"x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
"x-forwarded-proto":"http",
"x-forwarded-host":"localhost:8000",
"host":"mocktarget.apigee.net",
"x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
"via":"1.1 localhost, 1.1 google",
"x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
"connection":"Keep-Alive"
},
"method":"GET",
"url":"/",
"body":""
}استفاده از حالت پراکسی محلی
در حالت پراکسی محلی، Edge Microgateway نیازی به پراکسی microgateway-aware برای استقرار در Apigee Edge ندارد. درعوض، با ارائه نام پراکسی محلی، مسیر پایه، و نشانی وب هدف هنگام شروع microgateway، یک «پراکسی محلی» را پیکربندی میکنید. سپس فراخوانیهای API به ریزدروازه به نشانی وب هدف پراکسی محلی ارسال میشود. در سایر موارد، حالت پراکسی محلی دقیقاً مانند اجرای Edge Microgateway در حالت عادی عمل میکند. اصالتسنجی به همان صورت کار میکند، همانطور که توقف جهش و اجرای سهمیه، افزایههای سفارشی، و غیره کار میکنند.
مورد استفاده و نمونه
حالت پراکسی محلی زمانی مفید است که فقط لازم باشد یک پراکسی را با یک نمونه Edge Microgateway مرتبط کنید. برای مثال، میتوانید Edge Microgateway را بهعنوان پراکسی جانبی به Kubernetes تزریق کنید، که در آن یک microgateway و یک سرویس هرکدام در یک pod اجرا میشوند، و microgateway ترافیک ورودی و خروجی سرویس همراه خود را مدیریت میکند. شکل زیر این معماری را نشان میدهد که در آن Edge Microgateway بهعنوان پراکسی جانبی در خوشه Kubernetes عمل میکند. هر نمونه ریزدروازه فقط با یک نقطه پایانی در سرویس همراه خود صحبت میکند:

یکی از مزایای این سبک معماری این است که Edge Microgateway مدیریت میانای برنامهسازی کاربردی را برای سرویسهای تکی مستقرشده در محیط محفظه، مانند خوشه Kubernetes، ارائه میدهد.
درحال پیکربندی حالت پراکسی محلی
برای پیکربندی Edge Microgateway برای اجرا در حالت پراکسی محلی، این مراحل را دنبال کنید:
edgemicro initرا اجرا کنید تا محیط پیکربندی محلیتان را دقیقاً همانطور که در راهاندازی Edge Microgateway معمولی انجام میدهید، راهاندازی کنید. همچنین پیکربندی Edge Microgateway را ببینید.edgemicro configureرا اجرا کنید، همانطور که در روش راهاندازی Edge Microgateway معمولی انجام میدهید. برای مثال:edgemicro configure -o your_org -e your_env -u your_apigee_username
این فرمان خطمشی edgemicro-auth را در Edge مستقر میکند و کلید و رمزی را برمیگرداند که برای شروع microgateway به آن نیاز دارید. اگر به راهنمایی نیاز دارید، پیکربندی Edge Microgateway را ببینید.
- در Apigee Edge، محصول API را با الزامات پیکربندی اجباری زیر ایجاد کنید (میتوانید همه پیکربندیهای دیگر را بهدلخواه خودتان مدیریت کنید):
- باید پراکسی edgemicro-auth را به محصول اضافه کنید. این پراکسی
هنگام اجرای
edgemicro configureبهطور خودکار مستقر شد. - باید مسیر منبع را ارائه کنید. Apigee توصیه میکند این مسیر به محصول اضافه شود:
/**. برای اطلاعات بیشتر، پیکربندی رفتار مسیر منبع را ببینید. همچنین، ایجاد محصولات میانای برنامهسازی کاربردی را در اسناد Edge ببینید.
- باید پراکسی edgemicro-auth را به محصول اضافه کنید. این پراکسی
هنگام اجرای
در Apigee Edge، توسعهدهندهای ایجاد کنید یا اگر مایلید میتوانید از توسعهدهنده موجود استفاده کنید. برای راهنمایی، افزودن توسعهدهندگان بااستفاده از واسط کاربر مدیریت Edge را ببینید.
- در Apigee Edge، برنامه توسعهدهنده ایجاد کنید. باید محصول API را که بهتازگی ایجاد کردهاید به برنامه اضافه کنید. برای راهنمایی، ثبت برنامه در Edge رابط کاربری مدیریت را ببینید.
- در دستگاهی که Edge Microgateway نصب شده است، متغیر محیطی زیر را با مقدار «۱» صادر کنید.
export EDGEMICRO_LOCAL_PROXY=1
- فرمان
startزیر را اجرا کنید:edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_pathمکان:
- your_org سازمان Apigee شما است.
- your_environment محیطی در سازمان شما است.
- your_key کلیدی است که هنگام اجرای
edgemicro configureبرگردانده شد. - your_secret کلیدی است که هنگام اجرای
edgemicro configureبرگردانده شد. - local_proxy_name نام پراکسی محلی است که ایجاد خواهد شد.
- local_proxy_version شماره نسخه پراکسی است.
- target_url نشانی وب هدف پیشکار است (سرویسی که پیشکار با آن تماس خواهد گرفت).
- base_path مسیر پایه پراکسی است. این مقدار باید با خط مورب رو به جلو شروع شود. برای مسیر پایه ریشه، فقط یک خط مورب رو به جلو مشخص کنید؛ برای مثال، «/».
برای مثال:
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
درحال آزمایش پیکربندی
میتوانید پیکربندی پراکسی محلی را با فراخوانی نقطه پایانی پراکسی آزمایش کنید. برای مثال،
اگر مسیر پایه /echo را مشخص کرده باشید، میتوانید پراکسی را بهصورت زیر فراخوانی کنید:
curl http://localhost:8000/echo
{
"error" : "missing_authorization",
"error_description" : "Missing Authorization header"
}این فراخوانی اولیه میانای برنامهسازی کاربردی (API) با خطا مواجه شد زیرا کلید میانای برنامهسازی کاربردی معتبری ارائه نکردید. میتوانید کلید را در برنامه «توسعهدهنده» که قبلاً ایجاد کردهاید پیدا کنید. برنامه را در Edge UI باز کنید، «کلید مصرفکننده» را کپی کنید، و از آن کلید بهصورت زیر استفاده کنید:
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
برای مثال:
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
خروجی نمونه:
{
"headers":{
"user-agent":"curl/7.54.0",
"accept":"*/*",
"x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
"client_received_start_timestamp":"1535134472699",
"x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==",
"target_sent_start_timestamp":"1535134472702",
"x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
"x-forwarded-proto":"http",
"x-forwarded-host":"localhost:8000",
"host":"mocktarget.apigee.net",
"x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
"via":"1.1 localhost, 1.1 google",
"x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
"connection":"Keep-Alive"
},
"method":"GET",
"url":"/",
"body":""
}استفاده از همگامساز
این بخش نحوه استفاده از همگامساز را توضیح میدهد، ویژگی اختیاریای که انعطافپذیری Edge Microgteway را با اجازه دادن به آن برای بازیابی دادههای پیکربندی از Apigee Edge و نوشتن آن در پایگاه داده محلی Redis بهبود میبخشد. با اجرای نمونه همگامساز، سایر نمونههای Edge Microgateway که در گرههای مختلف اجرا میشوند میتوانند پیکربندی خود را مستقیماً از این پایگاه داده بازیابی کنند.
ویژگی همگامساز درحالحاضر برای کار با Redis 5.0.x پشتیبانی میشود.
همگامساز چیست؟
همگامساز سطحی از انعطافپذیری را برای Edge Microgateway فراهم میکند. این کار کمک میکند مطمئن شوید که هر نمونه Edge Microgateway از پیکربندی یکسانی استفاده میکند و درصورت قطع شدن اینترنت، نمونههای Edge Microgateway میتوانند بهدرستی راهاندازی و اجرا شوند.
بهطور پیشفرض، نمونههای Edge Microgateway باید بتوانند با Apigee Edge ارتباط برقرار کنند تا دادههای پیکربندی خود را بازیابی و بازآوری کنند، مانند پیکربندیهای پراکسی API و محصول API. اگر اتصال اینترنت با Edge مختل شود، نمونههای ریزدروازه میتوانند به عملکرد خود ادامه دهند زیرا جدیدترین دادههای پیکربندی در حافظه نهان ذخیره شده است. بااینحال، نمونههای جدید microgateway نمیتوانند بدون اتصال واضح شروع به کار کنند. علاوهبراین، ممکن است اختلال اینترنت باعث شود یک یا چند نمونه ریزدروازه با اطلاعات پیکربندیای اجرا شود که با نمونههای دیگر همگامسازی نشده است.
همگامساز Edge Microgateway سازوکار جایگزینی برای نمونههای Edge Microgateway فراهم میکند تا دادههای پیکربندی موردنیاز برای راهاندازی و پردازش ترافیک پراکسی میانای برنامهسازی کاربردی را بازیابی کنند.
دادههای پیکربندی بازیابیشده از تماسها با Apigee Edge شامل این موارد است: تماس jwk_public_keys،
تماس jwt_public_key، تماس راهاندازی، و تماس محصولات API.
همگامساز این امکان را فراهم میکند که همه نمونههای Edge Microgateway که روی گرههای مختلف اجرا میشوند بهدرستی راهاندازی شوند و همگام بمانند، حتی اگر اتصال اینترنت بین Edge Microgateway و Apigee Edge قطع شود.
همگامساز نمونهای از Edge Microgateway است که بهطور ویژه پیکربندی شده است. تنها هدف آن نظرسنجی Apigee Edge (زمانبندی قابل پیکربندی است)، بازیابی دادههای پیکربندی، و نوشتن آن در پایگاه داده محلی Redis است. نمونه همگامساز خودش نمیتواند ترافیک پراکسی میانای برنامهسازی کاربردی را پردازش کند. سایر نمونههای Edge Microgateway که روی گرههای مختلف اجرا میشوند را میتوان بهگونهای پیکربندی کرد که دادههای پیکربندی را بهجای Apigee Edge از پایگاه داده Redis بازیابی کنند. چون همه نمونههای microgateway دادههای پیکربندیشان را از پایگاه داده محلی میگیرند، میتوانند حتی درصورت قطع اینترنت، درخواستهای API را راهاندازی و پردازش کنند.
پیکربندی نمونه همگامساز
پیکربندی زیر را به فایل org-env/config.yaml برای
نصب Edge Microgateway که میخواهید بهعنوان همگامساز استفاده کنید اضافه کنید:
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
برای مثال:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
| گزینه | شرح |
|---|---|
redisHost |
میزبانی که نمونه Redis شما در آن اجرا میشود. پیشفرض: 127.0.0.1 |
redisPort |
درگاه نمونه Redis. پیشفرض: ۶۳۷۹ |
redisDb |
پایگاه داده Redis برای استفاده. پیشفرض: ۰ |
redisPassword |
گذرواژه پایگاه داده شما. |
درنهایت، فایل پیکربندی را ذخیره کنید و نمونه Edge Microgateway را شروع کنید. این سرویس شروع به نظرسنجی از Apigee Edge و ذخیره دادههای پیکربندی بارگیریشده در پایگاه داده Redis میکند.
درحال پیکربندی نمونههای Edge Microgateway معمولی
با اجرای همگامساز، میتوانید گرههای Edge Microgateway بیشتری را پیکربندی کنید تا نمونههای microgateway معمولی را که ترافیک پراکسی میانای برنامهسازی کاربردی را پردازش میکنند اجرا کنید. بااینحال، شما این نمونهها را پیکربندی میکنید تا دادههای پیکربندی خود را بهجای Apigee Edge از پایگاه داده Redis دریافت کنند.
پیکربندی زیر را به فایل org-env/config.yaml هر گره Edge Microgateway اضافی اضافه کنید. توجه داشته باشید که خصوصیت synchronizerMode
روی 0 تنظیم شده است. این ویژگی نمونه را طوری تنظیم میکند که بهعنوان نمونه Edge Microgateway معمولی عمل کند که ترافیک پراکسی میانای برنامهسازی کاربردی را پردازش میکند و نمونه دادههای پیکربندی خود را از پایگاه داده Redis دریافت خواهد کرد.
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
برای مثال:
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
خصوصیتهای پیکربندی
ویژگیهای پیکربندی زیر برای پشتیبانی از استفاده از همگامساز اضافه شدهاند:
| مشخصه | مقادیر | شرح |
|---|---|---|
edge_config.synchronizerMode |
۰ یا ۱ | اگر ۰ (پیشفرض) باشد، Edge Microgateway در حالت استاندارد خود کار میکند. اگر ۱ است، نمونه Edge Microgateway را راهاندازی کنید تا بهعنوان همگامساز عمل کند. در این حالت، نمونه دادههای پیکربندی را از Apigee Edge میکشد و آن را در پایگاه داده Redis محلی ذخیره میکند. این نمونه نمیتواند درخواستهای پراکسی میانای برنامهسازی کاربردی را پردازش کند؛ تنها هدف آن نظرسنجی Apigee Edge برای دادههای پیکربندی و نوشتن آن در پایگاه داده محلی است. سپس باید نمونههای دیگر microgateway را برای خواندن از پایگاه داده پیکربندی کنید. |
edge_config.redisBasedConfigCache |
درست یا نادرست | اگر درست باشد، نمونه Edge Microgateway دادههای پیکربندی خود را بهجای Apigee Edge از پایگاه داده Redis واکشی میکند. پایگاه داده Redis باید همان پایگاه دادهای باشد
که همگامساز برای نوشتن در آن پیکربندی شده است. اگر پایگاه داده Redis دردسترس نباشد یا
اگر پایگاه داده خالی باشد، ریزدروازه بهدنبال فایل cache-config.yaml
موجود برای پیکربندی خود میگردد.
اگر نادرست باشد (پیشفرض)، نمونه Edge Microgateway دادههای پیکربندی را طبق معمول از Apigee Edge واکشی میکند. |
edgemicro.config_change_poll_interval |
فاصله زمانی، برحسب ثانیه | بازه زمانی نظرسنجی را برای همگامساز مشخص میکند تا دادهها را از Apigee Edge دریافت کند. |
درحال پیکربندی نشانیهای وب مستثناشده برای افزونهها
میتوانید ریزدروازه را بهگونهای پیکربندی کنید که از پردازش افزایهها برای نشانیهای وب مشخصشده صرفنظر کند. میتوانید این نشانیهای وب «مستثنیشده» را بهصورت سراسری (برای همه افزایهها) یا برای افزایههای خاص پیکربندی کنید.
برای مثال:
...
edgemicro:
...
plugins:
excludeUrls: '/hello,/proxy_one' # global exclude urls
sequence:
- oauth
- json2xml
- quota
json2xml:
excludeUrls: '/hello/xml' # plugin level exclude urls
...
در این مثال، افزونهها تماسهای ورودی پراکسی میانای برنامهسازی کاربردی را با مسیرهای /hello یا /proxy_one پردازش نخواهند کرد. علاوهبراین، از افزونه json2xml
برای میاناهای برنامهسازی کاربردی که /hello/xml در مسیرشان دارند رد خواهد شد.
تنظیم مشخصههای پیکربندی با مقادیر متغیر محیطی
میتوانید متغیرهای محیطی را بااستفاده از برچسبها در فایل پیکربندی مشخص کنید. برچسبهای متغیر محیطی مشخصشده با مقادیر متغیر محیطی واقعی جایگزین میشوند. جایگزینها فقط در حافظه ذخیره میشوند و در پیکربندی اصلی یا فایلهای حافظه پنهان ذخیره نمیشوند.
در این مثال، مشخصه key با مقدار متغیر محیطی TARGETS_SSL_CLIENT_KEY جایگزین میشود و غیره.
targets:
- ssl:
client:
key: <E>TARGETS_SSL_CLIENT_KEY</E>
cert: <E>TARGETS_SSL_CLIENT_CERT</E>
passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>
در این مثال، از برچسب <n> برای نشان دادن مقدار عدد صحیح استفاده میشود. فقط اعداد صحیح مثبت پشتیبانی میشود.
edgemicro: port: <E><n>EMG_PORT</n></E>
در این مثال، از برچسب <b> برای نشان دادن مقدار بولی (یعنی درست یا نادرست) استفاده میشود.
quotas: useRedis: <E><b>EMG_USE_REDIS</b></E>