شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
محدودیتهای متغیر محیطی
Hosted Targets اندازه و تعداد متغیرهای محیطی را که میتوانید در محیط زمان اجرای Hosted Targets تنظیم کنید، محدود میکند.
- ۱۰۰۰: حداکثر طول یک متغیر محیطی واحد.
- ۱۰۰: حداکثر تعداد متغیرهای محیطی که میتوانید تنظیم کنید.
برای اطلاعات در مورد تنظیم متغیرهای محیطی، به فایل مانیفست مراجعه کنید.
متغیرهای محیطی تنظیم شده در زمان اجرای برنامه
وقتی یک برنامه Hosted Targets را مستقر میکنید، متغیرهای محیطی زیر تنظیم شده و در زمان اجرا در دسترس برنامه شما هستند:
-
APIGEE_ENVIRONMENT- محیطی که پروکسی Hosted Target در آن مستقر است. -
APIGEE_ORGANIZATION- سازمانی که پروکسی Hosted Target در آن مستقر شده است. -
PORT- پورتی که برنامه Hosted Target باید به آن گوش دهد.
تخصیص منابع سیستم
هر نمونه Hosted Targets منابع زیر را دریافت میکند:
- حافظه ۲۵۶ مگابایت
- پردازنده ۱.۲ گیگاهرتزی
مقیاسبندی
این بخش نحوهی مقیاسپذیری برنامههای Hosted Targets را بسته به نوع حساب کاربری Edge شما شرح میدهد.- نسخه آزمایشی Apigee Edge به ازای هر پروکسی به یک نمونه Hosted Targets محدود شده است.
- حسابهای کاربری پولی Apigee Edge به صورت خودکار بر اساس نرخ درخواست، تأخیر پاسخ و سایر معیارهای برنامه به ازای هر پروکسی، مقیاسبندی میشوند.
- برنامههای Hosted Targets که روی هر دو نسخه پولی و آزمایشی Apigee Edge مستقر شدهاند، در دورههای عدم فعالیت، مقیاس را به صفر میرسانند. در این حالت، ممکن است برای مدت کوتاهی متوجه زمان پاسخگویی کندتر شوید. همچنین به مشکلات شناخته شده مراجعه کنید.
فایل مانیفست
برای جمعآوری اطلاعات زمان اجرا جهت ساخت و استقرار برنامه میزبانیشده، Edge به دنبال یک فایل مانیفست به نام app.yaml در دایرکتوری resources/hosted میگردد. این فایل حاوی اطلاعات لازم برای ساخت و استقرار برنامه Hosted Targets است.
سینتکس فایل Manfiest
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
عناصر فایل مانیفست
یک فایل مانیفست app.yaml شامل این عناصر است:
- زمان اجرا - (الزامی) نوع برنامهای که مستقر میکنید را مشخص میکند. باید
nodeرا مشخص کنید. - runtimeVersion - (اختیاری) نسخه زمان اجرایی که برنامه شما از آن استفاده میکند. پیشفرض: Node.js LTS (v10.x). برای گزینههای دیگر به مخزن رسمی Docker برای Node مراجعه کنید.
- command - (اختیاری) به شما امکان میدهد دستوری را برای اجرا مشخص کنید، غیر از دستور پیشفرضی که برای شروع برنامه شما استفاده میشود. پیشفرض:
Node.js=npm - args - (اختیاری) آرایهای از آرگومانهای خط فرمان که باید به برنامه ارسال شوند (مشخص شده در سینتکس آرایه استاندارد YAML). معمولاً این آرگومانها به دستور پیشفرض اضافه میشوند. مقدار پیشفرض start است. برای مثال، به طور پیشفرض دستور
npm startبه برنامه Node.js ارسال میشود. - env - (اختیاری) آرایهای از متغیرهای محیطی (جفتهای نام/مقدار) برای تنظیم در محیط زمان اجرای Hosted Targets. این متغیرها برای برنامه Hosted Targets مستقر شده شما در دسترس هستند.
- نام - نام متغیر.
- مقدار | valueRef - شما دو گزینه دارید. میتوانید یک مقدار تحتاللفظی تنظیم کنید یا به مقداری که در یک نگاشت کلید-مقدار ذخیره شده است، ارجاع دهید. نگاشت کلید-مقدار باید از قبل در محیط Edge شما وجود داشته باشد. به کار با نگاشتهای کلید-مقدار مراجعه کنید.
- اگر از value استفاده میکنید، باید
nameمتغیر وvalueتحتاللفظی آن را مشخص کنید. برای مثال:runtime: node env: - name: NODE_ENV value: production - اگر از valueRef استفاده میکنید، باید نام یک Key Value Map (KVM) که قبلاً در Edge ایجاد کردهاید و یک کلید را ارائه دهید. برای مثال:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- اگر از value استفاده میکنید، باید
- apigeetool -- یک ابزار خط فرمان برای استقرار پروکسیهای Edge.
- get_token - یک ابزار خط فرمان برای دریافت توکن مجوز مورد نیاز apigeetool.
- در یک مرورگر، به آدرس https://github.com/apigee/api-platform-samples بروید.
- روی Clone کلیک کنید یا با استفاده از روش دلخواه خود، مخزن را دانلود و به سیستم محلی خود منتقل کنید.
- به <your install dir>/api-platform-samples/doc-samples/hosted-targets بروید.
- پس از دانلود مخزن، میتوانید با دستور cd به هر یک از دایرکتوریهای نمونه بروید و دستورالعملهای README را برای استقرار یک پروکسی نمونه در Edge دنبال کنید. دستور استقرار در زیر نشان داده شده است. به سادگی پارامترهای مشخص شده را با پارامترهای حساب Apigee خود جایگزین کنید:
- تأخیرهای شبکه - اکنون که برنامه Node.js دیگر در JVM مربوط به MP اجرا نمیشود، یک جهش شبکه بین MP و استقرار وجود دارد. البته این هزینهای دارد، اما معیارهای اولیه نشان میدهند که این هزینه در حد معقولی است.
- پاسخهای کند API - زیرساختی که برنامههای شما را اجرا میکند، بهطور خودکار بر اساس نیاز مقیاسپذیر میشود. این بدان معناست که برنامه شما میتواند در واقع به صفر نمونه کاهش یابد و در این صورت، درخواست API بعدی کمی بیشتر از درخواستهای API معمولی طول خواهد کشید، زیرا زیرساخت در حال راهاندازی نمونه(ها) برای پردازش درخواست(ها) است.
- خطای استقرار - اگر هنگام استقرار پروکسی Hosted Targets با خطای استقرار مواجه شدید، سعی کنید پروکسی را مجدداً مستقر کنید. در برخی موارد، استقرار میتواند با وقفه زمانی مواجه شود و اگر مجدداً مستقر شوید، مشکل خود به خود حل خواهد شد.
مثال فایلهای مانیفست
این بخش شامل فایلهای مانیفست نمونه برای برنامههای Node.js است. برای استقرار یک برنامه Hosted Targets به یک فایل مانیفست نیاز است و باید در دایرکتوری apiproxy/resources/hosted قرار داشته باشد و نام فایل باید app.yaml باشد.
در ادامه نمونههایی از فایلهای app.yaml (مانیفست) برای برنامههای Node.js آمده است.
مثالی که یک متغیر محیطی تحتاللفظی را مشخص میکند:
runtime: node
env:
- name: NODE_ENV
value: productionمثالی با یک دستور شروع، آرگومانهای خط فرمان و یک متغیر محیطی.
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
مثالی که مرجع نگاشت کلید-مقدار (KVM) را مشخص میکند:
برای اطلاعات بیشتر در مورد دسترسی KVM، به فایل Manifest مراجعه کنید.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
نمونه برنامههای Hosted Targets در گیتهاب
Apigee نمونههایی از پروکسیها را در GitHub با برنامههای Hosted Targets نوشته شده در Node.js ارائه میدهد. میتوانید این مخزن را کلون کنید و دستورالعملهای README را برای استقرار هر یک از پروکسیها دنبال کنید.
پیشنیازها
برای نصب نمونهها، باید دو ابزار روی سیستم خود نصب داشته باشید:
اگر میخواهید نمونهها را به صورت محلی آزمایش کنید، باید Node.js را نیز نصب کرده باشید.
دریافت نمونه رپو
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
مثال: اجرای یک برنامه نمونه
مخزن نمونهها را کلون کنید
cd ~/myhomegit clone https://github.com/apigee/api-platform-samples.gitcd ~/myhome/api-platform-samples/doc-samples/hosted-targetscd node-hosted-hello
برنامه را به صورت محلی آزمایش کنید
برای انجام این تست محلی باید Node.js را نصب کرده باشید.
PORT=8081 node apiproxy/resources/hosted/index.jscurl http://localhost:8081
خروجی مثال:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}پراکسی را مستقر کنید
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
آزمایش استقرار
ممکن است تکمیل استقرار چند دقیقه طول بکشد. اگر با خطای استقرار مواجه شدید، دستور deploy را دوباره اجرا کنید.
curl http://myorg-test.apigee.net/node-hosted-hello
خروجی مثال:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"