يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
حدود متغيرات البيئة
تحدّ الاستهدافات المستضافة من حجم وعدد متغيرات البيئة التي يمكنك ضبطها في بيئة وقت تشغيل الأهداف المستضافة.
- 1000: الحد الأقصى لطول متغير بيئة واحد.
- 100: الحد الأقصى لعدد متغيرات البيئة التي يمكنك ضبطها.
للحصول على معلومات عن ضبط متغيرات البيئة، يُرجى الاطّلاع على ملف البيان.
متغيرات البيئة التي تم ضبطها في وقت تشغيل التطبيق
عند نشر تطبيق "أهداف مستضافة"، يتم ضبط متغيرات البيئة التالية وتصبح متاحة لتطبيقك في وقت التشغيل:
APIGEE_ENVIRONMENT
: البيئة التي يتم فيها تفعيل الخادم الوكيل المستهدَف المُستضاف.APIGEE_ORGANIZATION
: المؤسسة التي يتم فيها تفعيل الخادم الوكيل المستهدَف المُستضاف.PORT
- المنفذ الذي يجب أن يستمع فيه تطبيق الاستهداف المستضاف.
تخصيص موارد النظام
يتلقى كل مثيل من الأهداف المستضافة الموارد التالية:
- ذاكرة بحجم 256 ميغابايت
- وحدة معالجة مركزية (CPU) بسرعة 1.2 غيغاهرتز
التحجيم
يصف هذا القسم كيف يتغير حجم تطبيقات الاستهدافات المستضافة، اعتمادًا على نوع حساب Edge الذي تستخدمه.- يقتصر الإصدار التجريبي من Apigee Edge على مثيل واحد من الأهداف المستضافة لكل خادم وكيل.
- تتلقّى حسابات Apigee Edge المدفوعة تحجيم تلقائي استنادًا إلى معدّل الطلبات ووقت الاستجابة للاستجابة ومقاييس التطبيق الأخرى لكل خادم وكيل.
- يتم نشر التطبيقات المستضافة في الإصدارَين المدفوع والتجريبي من نطاق Apigee Edge حتى صفر في فترات عدم النشاط. وفي هذه الحالة، قد تلاحظ تباطؤًا في أوقات الاستجابة لفترة قصيرة. يُرجى الاطّلاع أيضًا على المشاكل المعروفة.
ملف البيان
لجمع معلومات وقت التشغيل من أجل إنشاء التطبيق المُستضاف ونشره، يبحث Edge عن ملف بيان باسم app.yaml في دليل الموارد/المستضافة. يحتوي هذا الملف على معلومات ضرورية لإنشاء تطبيق الأهداف المستضافة ونشره.
بيان بنية الملف
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 العناصر التالية:
- runtime - (مطلوب) يحدد نوع التطبيق الذي تنشرينه.
يجب تحديد
node
. - runtimeVersion - (اختياري) إصدار وقت التشغيل الذي يستخدمه تطبيقك. الإعداد التلقائي: Node.js LTS (الإصدار 10.x). يمكنك الرجوع إلى مستودع Drocker الرسمي لمنصة Node للاطّلاع على خيارات أخرى.
- command - (اختيارية) تتيح لك تحديد أمر لتشغيله غير الأمر التلقائي المستخدَم لبدء تشغيل تطبيقك. اللغة التلقائية:
Node.js=npm
- args: (اختيارية) مصفوفة من وسيطات سطر الأوامر لنقل التطبيق إلى التطبيق (محددة في بنية مصفوفة YAML العادية). وعادةً، تتم إضافة هذه العناوين إلى الأمر الافتراضي.
الإعداد التلقائي هو start. على سبيل المثال، سيتم تلقائيًا تمرير الأمر
npm start
إلى تطبيق Node.js. - env - (اختيارية) هي مصفوفة من متغيّرات البيئة (أزواج الاسم/القيمة) لضبطها في بيئة وقت تشغيل الأهداف المستضافة. تتوفر هذه المتغيّرات لتطبيق "الأهداف المستضافة" الذي تم نشره.
- name - اسم المتغيّر.
- value | valueRef - لديك خياران. يمكنك ضبط قيمة حرفية أو الإشارة إلى قيمة مخزّنة في خريطة القيم الرئيسية. يجب أن تكون "خريطة القيم الرئيسية"
متوفّرة في بيئة Edge. اطّلِع على مقالة العمل باستخدام خرائط القيمة الرئيسية.
- إذا كنت تستخدم value، عليك تحديد المتغيّر
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
- إذا كنت تستخدم value، عليك تحديد المتغيّر
أمثلة على ملفات البيان
يحتوي هذا القسم على أمثلة على ملفات البيان لتطبيقات
Node.js. يجب توفير ملف بيان لنشر تطبيق الأهداف المستضافة، ويجب أن يكون هذا الملف متوفرًا في دليل 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، يُرجى الاطّلاع على ملف البيان.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
نماذج من تطبيقات الأهداف المستضافة على GitHub
توفر Apigee نماذج خوادم وكيلة على GitHub مع تطبيقات الأهداف المستضافة المكتوبة بلغة Node.js. يمكنك استنساخ هذا الريبو واتّباع تعليمات الدليل التمهيدي لنشر أي من الخوادم الوكيلة.
المتطلبات الأساسية
لنشر النماذج، يجب أن يكون لديك أداتان مثبّتتان على النظام:
- apigeetool: أداة سطر أوامر لنشر خوادم Edge الوكيلة.
- get_token: أداة سطر أوامر للحصول على رمز التفويض المميز الذي تطلبه apigeetool.
إذا أردت اختبار النماذج محليًا، يجب أيضًا تثبيت Node.js.
الحصول على عيّنة Repo
- في متصفّح، انتقِل إلى https://github.com/apigee/api-platform-samples.
- انقر على نسخ أو تنزيل واسحب الريبو إلى النظام المحلي باستخدام طريقتك المفضّلة.
- cd إلى <your install dir>/api-platform-models/doc- sample/host-targets
- بعد تنزيل الريبو، يمكنك القرص المضغوط لأي نموذج من الأدلة واتّباع تعليمات ملف التعليمات لتفعيل نموذج وكيل على Edge. يظهر أمر النشر أدناه. ما عليك سوى استبدال المَعلمات المُشار إليها بمَعلمات لحسابك على 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 .
اختبار عملية النشر
قد يستغرق اكتمال عملية النشر بضع دقائق. إذا ظهر لك خطأ في النشر، يمكنك تنفيذ أمر النشر مرة أخرى.
curl http://myorg-test.apigee.net/node-hosted-hello
مثال على الإخراج:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
المشاكل المعروفة
- أوقات استجابة الشبكة - الآن بعد أن لم يعُد تطبيق Node.js يعمل في JVM في MP، أصبحت هناك الآن قفزة بين الشبكة بين MP وعملية النشر. وبالطبع يتم ذلك مقابل تكلفة، ولكن تُظهر مقاييس الأداء الأولية أنّ ذلك يكون ضمن نطاق معقول.
- استجابات واجهة برمجة التطبيقات البطيئة: تتغيّر البنية الأساسية التي تشغّل تطبيقاتك تلقائيًا حسب الحاجة. ويعني هذا أنّه يمكن لتطبيقك تقليص حجمه إلى صفر مثيلات، وفي هذه الحالة، سيستغرق الطلب التالي من واجهة برمجة التطبيقات وقتًا أطول قليلاً من الطلبات المعتادة من واجهة برمجة التطبيقات لأنّ البنية الأساسية تُشغّل النُسخ الافتراضية لمعالجة الطلبات.
- خطأ في النشر: إذا تلقيت خطأ نشر عند نشر خادم وكيل للأهداف المستضافة، جرِّب إعادة نشر الخادم الوكيل. في بعض الحالات، يمكن أن تنتهي مهلة النشر، وإذا أعدت النشر، فسيتم حل المشكلة من تلقاء نفسها.