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

أنت تعرض مستندات 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 في دليل 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 - اسم المتغير.
    • القيمة | 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 (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. يمكنك استنساخ هذا المستودع واتّباع تعليمات README نشر أي من الخوادم الوكيلة.

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

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

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

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

    الحصول على نموذج Repo

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