مرجع الأهداف المستضافة

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X.
info

حدود متغيرات البيئة

تحدّ "الأهداف المستضافة" من حجم وعدد متغيرات البيئة التي يمكنك ضبطها في بيئة وقت تشغيل "الأهداف المستضافة".

  • 1000: الحد الأقصى لطول متغيّر بيئة واحد
  • 100: الحد الأقصى لعدد متغيرات البيئة التي يمكنك ضبطها

لمعرفة معلومات عن ضبط متغيرات البيئة، يُرجى الاطّلاع على ملف البيان.

متغيرات البيئة التي تم ضبطها في وقت تشغيل التطبيق

عند نشر تطبيق "الأهداف المستضافة"، يتم ضبط متغيرات البيئة التالية و تكون متاحة لتطبيقك في وقت التشغيل:

  • APIGEE_ENVIRONMENT : البيئة التي يتم فيها نشر الخادم الوكيل لـ "الأهداف المستضافة"
  • APIGEE_ORGANIZATION : المؤسسة التي يتم فيها نشر الخادم الوكيل لـ "الأهداف المستضافة"
  • PORT : المنفذ الذي يجب أن يستمع إليه تطبيق "الأهداف المستضافة"

تخصيص موارد النظام

تحصل كلّ مثيل من "الأهداف المستضافة" على الموارد التالية:

  • ذاكرة بسعة 256 ميغابايت
  • وحدة معالجة مركزية (CPU) بسرعة 1.2 غيغاهرتز

التدرّج

يوضّح هذا القسم كيفية تدرّج تطبيقات "الأهداف المستضافة"، حسب نوع حساب Edge الذي لديك.
  • يقتصر الإصدار التجريبي من Apigee Edge على مثيل واحد من "الأهداف المستضافة" لكل خادم وكيل.
  • تحصل حسابات Apigee Edge المدفوعة على تدرّج تلقائي استنادًا إلى معدّل الطلبات ومدة استجابة الطلبات، ومقاييس التطبيق الأخرى لكل خادم وكيل.
  • تتدرّج تطبيقات "الأهداف المستضافة" المنشورة على كلّ من الإصدارَين المدفوع والتجريبي من Apigee Edge إلى صفر خلال فترات عدم النشاط. في هذه الحالة، قد تلاحظ بطئًا في أوقات الاستجابة لفترة قصيرة. يُرجى الاطّلاع أيضًا على المشاكل المعروفة

ملف البيان

لجمع معلومات وقت التشغيل لإنشاء التطبيق المستضاف ونشره، يبحث Edge عن ملف بيان باسم app.yaml في الدليل resources/hosted. يحتوي هذا الملف على المعلومات اللازمة لإنشاء تطبيق "الأهداف المستضافة" ونشره.

بنية ملف البيان

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 من أجل Node للاطّلاع على خيارات أخرى.
  • command : (اختياري) يتيح لك تحديد أمر لتشغيله بدلاً من الأمر التلقائي المستخدَم لبدء تطبيقك. الإعداد التلقائي: Node.js=npm
  • args : (اختياري) مصفوفة من وسيطات سطر الأوامر التي يتم تمريرها إلى الـ تطبيق (المحدّدة بتنسيق مصفوفة YAML العادي) تتم عادةً إضافة هذه الوسيطات إلى الأمر التلقائي. الإعداد التلقائي هو start. على سبيل المثال، سيتم تلقائيًا تمرير الأمر إلى تطبيق Node.js npm start.
  • 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

    أمثلة على ملفات البيان

    يحتوي هذا القسم على أمثلة على ملفات البيان لتطبيقات 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):

    لمزيد من المعلومات عن الوصول إلى خريطة قيم المفاتيح، يُرجى الاطّلاع على ملف البيان.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    أمثلة على تطبيقات "الأهداف المستضافة" على GitHub

    توفر Apigee نماذج للخوادم الوكيلة على GitHub تتضمن تطبيقات "الأهداف المستضافة" مكتوبة بلغة Node.js. يمكنك إنشاء نسخة طبق الأصل من هذا المستودع واتّباع تعليمات ملف README لنشر أيّ من الخوادم الوكيلة.

    المتطلبات الأساسية

    لنشر النماذج، يجب تثبيت أداتَين على نظامك:

    • apigeetool: أداة سطر أوامر لنشر خوادم Edge الوكيلة
    • get_token: أداة سطر أوامر للحصول على رمز تفويض مطلوب من apigeetool

    إذا أردت اختبار النماذج محليًا، يجب أيضًا تثبيت Node.js.

    الحصول على مستودع النماذج

    1. في المتصفّح، انتقِل إلى https://github.com/apigee/api-platform-samples.
    2. انقر على Clone or download واسحب المستودع إلى نظامك المحلي باستخدام الطريقة المفضّلة لديك.
    3. انتقِل إلى <your install dir>/api-platform-samples/doc-samples/hosted-targets باستخدام الأمر cd.
    4. بعد تنزيل المستودع، يمكنك الانتقال إلى أيّ من أدلة النماذج واتّباع تعليمات ملف README لنشر خادم وكيل نموذجي على Edge. يظهر أدناه أمر النشر. ما عليك سوى استبدال المَعلمات المحدّدة بمَعلمات حسابك على Apigee:
    5. 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 الخاص بمعالج الرسائل، أصبح هناك الآن انتقال عبر الشبكة بين معالج الرسائل وعملية النشر. بالطبع، يترتّب على ذلك تكلفة، ولكن تشير المؤشرات الأولية إلى أنّها ضمن مبلغ معقول.
    • بطء استجابات واجهة برمجة التطبيقات : يتم تلقائيًا تدرّج البنية الأساسية التي تشغّل تطبيقاتك استنادًا إلى الحاجة. يعني ذلك أنّه يمكن تدرّج تطبيقك إلى صفر مثيل، وفي هذه الحالة، سيستغرق طلب واجهة برمجة التطبيقات التالي وقتًا أطول قليلاً من طلبات واجهة برمجة التطبيقات العادية لأنّ البنية الأساسية تعمل على تشغيل المثيلَين أو المثيل لتنفيذ الطلبَين أو الطلب.
    • خطأ في النشر : إذا ظهر لك خطأ في النشر عند نشر خادم وكيل لـ "الأهداف المستضافة"، حاوِل إعادة نشر الخادم الوكيل. في بعض الحالات، قد تنتهي مهلة النشر وإذا أعدت النشر، سيتم حلّ المشكلة تلقائيًا.