أنت تعرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
حدود متغيّرات البيئة
تفرض "الاستهدافات المستضافة" قيودًا على حجم متغيّرات البيئة وعدد المتغيّرات التي يمكنك ضبطها في بيئة التشغيل في "الاستهدافات المستضافة".
- 1000: أقصى طول لمتغير بيئة واحد.
- 100: أقصى عدد لمتغيّرات البيئة التي يمكنك ضبطها.
للحصول على معلومات عن ضبط متغيّرات البيئة، يُرجى الاطّلاع على ملف البيان.
تم ضبط متغيرات البيئة في وقت تشغيل التطبيق.
عند نشر تطبيق "أهداف مستضافة"، يتم ضبط متغيّرات البيئة التالية وتصبح متاحة لتطبيقك في وقت التشغيل:
APIGEE_ENVIRONMENT
: البيئة التي يتم فيها تفعيل الخادم الوكيل للاستهداف المستضاف.APIGEE_ORGANIZATION
- المؤسسة التي تم نشر الخادم الوكيل لـ Hosted Target فيها.PORT
: المنفذ الذي يجب أن يستجيب من خلاله تطبيق "الهدف المستضاف"
تخصيص موارد النظام
يتلقّى كل مثيل "أهداف مستضافة" الموارد التالية:
- ذاكرة بسعة 256 ميغابايت
- وحدة معالجة مركزية (CPU) بسرعة 1.2 غيغاهرتز
التحجيم
يصف هذا القسم كيفية توسيع نطاق تطبيقات "الاستهدافات المستضافة"، بناءً على نوع حساب Edge الذي تستخدمه.- ويقتصر الإصدار التجريبي من Apigee Edge على مثيل واحد من مثيلات الأهداف المستضافة لكل خادم وكيل.
- تتلقّى حسابات Apigee Edge المدفوعة توسُّعًا تلقائيًا استنادًا إلى معدّل الطلبات وأوقات الاستجابة
وغيرها من مقاييس التطبيقات لكل خادم وكيل.
- إنّ تطبيقات "الاستهدافات المستضافة" التي يتم نشرها على كلٍّ من الإصدارات المدفوعة والتجريبية من Apigee Edge تنخفض إلى الصفر في فترات عدم النشاط. في هذه الحالة، قد تلاحظ استجابة أبطأ لفترة قصيرة. راجِع أيضًا المشاكل المعروفة.
ملف البيان
لجمع معلومات وقت التشغيل لإنشاء التطبيق المستضاف ونشره، يبحث Edge عن ملف بيان باسم app.yaml في دليل resources/host. يحتوي هذا الملف على المعلومات اللازمة لإنشاء تطبيق "الاستهدافات المستضافة" ونشره.
بنية ملف البيان
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) للاطّلاع على خيارات أخرى، راجِع المستودع الرسمي في Docker
- command: (اختياري) يتيح لك تحديد أمر تنفيذ غير الأمر
التلقائي المستخدَم لبدء تطبيقك. القيمة التلقائية:
Node.js=npm
- args - (اختيارية) مصفوفة من وسيطات سطر الأوامر التي يجب تمريرها إلى التطبيق (يتم تحديدها في بنية مصفوفة YAML العادية). تتم عادةً إضافة هذه العناصر إلى الأمر التلقائي.
القيمة التلقائية هي start. على سبيل المثال، سيتم تلقائيًا تمرير الأمر
npm start
على تطبيق Node.js. - env - (اختيارية) مصفوفة من متغيرات البيئة (أزواج الاسم/القيمة) لضبطها في بيئة وقت تشغيل "الأهداف المستضافة". تتوفّر هذه المتغيّرات لتطبيق "الاستهدافات المستضافة" الذي تم نشره.
- اسم: اسم المتغيّر.
- 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
(manifest) لتطبيقات 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 لديك.
الحصول على مستودع النماذج
- في متصفّح، انتقِل إلى https://github.com/apigee/api-platform-samples.
- انقر على نسخ أو تنزيل واسحب المستودع إلى نظامك المحلي باستخدام الطريقة المفضّلة لديك.
- يمكنك استخدام الأمر cd للانتقال إلى <your install dir>/api-platform-samples/doc-samples/hosted-targets.
- بعد تنزيل المستودع، يمكنك الانتقال إلى أي من الأدلة النموذجية واتّباع تعليمات README لنشر نموذج خادم وكيل على 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 لم يعُد قيد التشغيل في آلة Java الافتراضية (JVM) الخاصة بوحدة إدارة عمليات النشر (MP)، هناك الآن قفزة على الشبكة بين وحدة إدارة عمليات النشر وعملية النشر. لا شكّ في أنّ ذلك يترتّب عليك تكلفة، إلا أنّ مقاييس الأداء الأولية أظهرت أنّ ذلك ضمن نطاق معقول.
- بطء استجابة واجهة برمجة التطبيقات: يتم توسيع نطاق البنية الأساسية التي تعمل على تشغيل تطبيقاتك تلقائيًا استنادًا إلى الحاجة. وهذا يعني أنّه يمكن لتطبيقك تقليل عدد المثيلات إلى الصفر، وفي هذه الحالة، سيستغرق طلب واجهة برمجة التطبيقات التالي وقتًا أطول قليلاً مقارنةً بطلبات واجهة برمجة التطبيقات المعتادة لأنّ البنية الأساسية تنشئ المثيلات لمعالجة الطلبات.
- خطأ في النشر: إذا ظهرت لك رسالة خطأ في النشر عند نشر خادم وكيل للأهداف المستضافة، جرِّب إعادة نشر الخادم الوكيل. في بعض الحالات، يمكن أن تنتهي مهلة النشر وفي حال إعادة النشر، سيتم حلّ المشكلة تلقائيًا.