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

يتم الآن عرض مستندات 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

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

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

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