شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
حدود متغیرهای محیطی
Hosted Targets اندازه و تعداد متغیرهای محیطی را که می توانید در محیط زمان اجرا Hosted Targets تنظیم کنید محدود می کند.
- 1000: حداکثر طول یک متغیر محیطی.
- 100: حداکثر تعداد متغیرهای محیطی که می توانید تنظیم کنید.
برای اطلاعات در مورد تنظیم متغیرهای محیط، به فایل مانیفست مراجعه کنید.
متغیرهای محیطی در زمان اجرا برنامه تنظیم شده است
هنگامی که یک برنامه Hosted Targets را مستقر می کنید، متغیرهای محیطی زیر تنظیم می شوند و در زمان اجرا در دسترس برنامه شما هستند:
-
APIGEE_ENVIRONMENT
- محیطی که پراکسی Hosted Target در آن مستقر شده است. -
APIGEE_ORGANIZATION
- سازمانی که پراکسی Hosted Target در آن مستقر شده است. -
PORT
- پورتی که برنامه Hosted Target باید به آن گوش دهد.
تخصیص منابع سیستم
هر نمونه Hosted Targets منابع زیر را دریافت می کند:
- 256 مگابایت حافظه
- سی پی یو 1.2 گیگاهرتز
مقیاس بندی
این بخش، بسته به نوع حساب Edge که دارید، مقیاس برنامه های Hosted Targets را توضیح می دهد.- نسخه آزمایشی Apigee Edge به یک نمونه Hosted Targets در هر پراکسی محدود می شود.
- حسابهای پولی Apigee Edge بر اساس نرخ درخواست، تأخیر پاسخ و سایر معیارهای برنامه در هر پروکسی مقیاسبندی خودکار دریافت میکنند.
- برنامههای Hosted Targets در هر دو نسخه پولی و آزمایشی Apigee Edge در مقیاس صفر در دورههای عدم فعالیت مستقر میشوند. در این مورد، ممکن است برای مدت کوتاهی زمان پاسخدهی کندتر را مشاهده کنید. مسائل شناخته شده را نیز ببینید
فایل مانیفست
برای جمعآوری اطلاعات زمان اجرا برای ساخت و استقرار برنامه میزبانیشده، Edge به دنبال یک فایل مانیفست به نام app.yaml در فهرست منابع/میزبانی میگردد. این فایل حاوی اطلاعات لازم برای ساخت و استقرار برنامه 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 مراجعه کنید.
- فرمان - (اختیاری) به شما امکان میدهد دستوری غیر از دستور پیشفرض مورد استفاده برای شروع برنامه خود را برای اجرا تعیین کنید. پیش فرض:
Node.js=npm
- args - (اختیاری) آرایه ای از آرگومان های خط فرمان برای ارسال به برنامه (مشخص شده در نحو آرایه استاندارد YAML). به طور معمول، اینها به دستور پیش فرض اضافه می شوند. پیش فرض شروع است. به عنوان مثال، به طور پیش فرض برنامه Node.js دستور
npm start
دریافت می کند. - env - (اختیاری) آرایه ای از متغیرهای محیطی (جفت نام/مقدار) برای تنظیم در محیط زمان اجرا Hosted Targets. این متغیرها برای برنامه Hosted Targets مستقر شما در دسترس هستند.
- name - نام متغیر.
- ارزش | valueRef - شما دو گزینه دارید. می توانید یک مقدار تحت اللفظی تنظیم کنید یا به یک مقدار ذخیره شده در یک نقشه ارزش کلیدی اشاره کنید. نقشه Key Value باید از قبل در محیط Edge شما وجود داشته باشد. کار با نقشههای ارزش کلیدی را ببینید
- اگر از مقدار استفاده می کنید، باید یک
name
متغیر و یکvalue
تحت اللفظی تعیین کنید. به عنوان مثال:runtime: node env: - name: NODE_ENV value: production
- اگر از valueRef استفاده میکنید، باید نام یک نقشه ارزش کلیدی (KVM) که قبلاً در Edge ایجاد کردهاید و یک کلید ارائه کنید. به عنوان مثال:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- اگر از مقدار استفاده می کنید، باید یک
فایل های مانیفست نمونه
این بخش حاوی نمونه فایل های مانیفست برای برنامه های 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 در GitHub
Apigee پروکسی های نمونه را در GitHub با برنامه های Hosted Targets که در Node.js نوشته شده اند ارائه می دهد. میتوانید این مخزن را شبیهسازی کنید و دستورالعملهای README را برای استقرار هر یک از پراکسیها دنبال کنید.
پیش نیازها
برای استقرار نمونه ها، باید دو ابزار بر روی سیستم خود نصب کنید:
- apigeetool - یک ابزار خط فرمان برای استقرار پراکسی های Edge.
- get_token - یک ابزار خط فرمان برای به دست آوردن یک نشانه مجوز مورد نیاز apigeetool.
اگر می خواهید نمونه ها را به صورت محلی آزمایش کنید، باید Node.js را نیز نصب کرده باشید.
دریافت نمونه مخزن
- در یک مرورگر، به https://github.com/apigee/api-platform-samples بروید.
- روی Clone کلیک کنید یا بارگیری کنید و مخزن را با استفاده از روش دلخواه خود به سیستم محلی خود بکشید.
- سی دی به <دریچه نصب شما>/api-platform-samples/doc-samples/hosted-targets
- هنگامی که مخزن بارگیری شد، می توانید به هر یک از دایرکتوری های نمونه سی دی بزنید و دستورالعمل های README را دنبال کنید تا یک نمونه پراکسی را در Edge مستقر کنید. دستور deploy در زیر نشان داده شده است. به سادگی پارامترهای مشخص شده را با پارامترهایی برای حساب Apigee خود جایگزین کنید:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
مثال: اجرای یک برنامه نمونه
مخزن نمونه ها را کلون کنید
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
برنامه را به صورت محلی تست کنید
برای انجام این تست محلی باید Node.js را نصب کرده باشید.
PORT=8081 node apiproxy/resources/hosted/index.js
curl 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 .
استقرار را آزمایش کنید
تکمیل استقرار ممکن است چند دقیقه طول بکشد. اگر با خطای Deployment مواجه شدید، دستور deploy را دوباره اجرا کنید.
curl http://myorg-test.apigee.net/node-hosted-hello
خروجی نمونه:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
مسائل شناخته شده
- تاخیرهای شبکه - اکنون که برنامه Node.js دیگر در JVM MP اجرا نمی شود، اکنون یک پرش شبکه بین MP و استقرار وجود دارد. البته این هزینه دارد، اما معیارهای اولیه نشان میدهند که در یک مقدار معقول است
- پاسخ های آهسته API - زیرساختی که برنامه های شما را اجرا می کند به طور خودکار بر اساس نیاز مقیاس می شود. این بدان معناست که برنامه شما در واقع می تواند به صفر کاهش یابد و اگر چنین باشد، درخواست API بعدی کمی بیشتر از درخواست های API معمولی طول می کشد زیرا زیرساخت در حال چرخش نمونه(های) برای پردازش درخواست(ها) است.
- خطای استقرار - اگر هنگام استقرار پراکسی Hosted Targets با خطای استقرار مواجه شدید، سعی کنید پراکسی را مجدداً مستقر کنید. در برخی موارد، زمان استقرار ممکن است به پایان برسد و اگر مجدداً مستقر شوید، مشکل خود به خود حل می شود.