البرامج التعليمية حول الأهداف المستضافة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

تشرح البرامج التعليمية التالية كيفية نشر تطبيقات Node.js على Edge باستخدام الأهداف المستضافة، وهي بيئة تشغيل Node.js أصلية تستضيفها Apigee.

تتناول البرامج التعليمية المهام التالية:

  • نشر تطبيق Node.js على الأهداف المستضافة باستخدام واجهة مستخدم Edge.
  • نشر تطبيق Node.js للأهداف المستضافة من جهاز التطوير المحلي.
  • نقل خادم وكيل حالي باستخدام تنفيذ هدف Node.js تقليدي إلى الأهداف المستضافة

نشر تطبيق Node.js على الأهداف المستضافة باستخدام واجهة مستخدم Edge

في هذا البرنامج التعليمي، ستنشر تطبيق Node.js بسيطًا على الأهداف المستضافة باستخدام واجهة مستخدم Edge. عند إكمال البرنامج التعليمي، ستفهم البنية الأساسية ومحتويات الخادم الوكيل للأهداف المستضافة وكيفية الوصول إلى ملفات السجلّ والنشر.

تسجيل الدخول

  1. انتقِل إلى: apigee.com/edge
  2. أدخِل بيانات اعتماد تسجيل الدخول إلى Apigee لتسجيل الدخول.

إنشاء خادم وكيل جديد

  1. في قائمة التنقّل الجانبية، اختر التطوير > الخوادم الوكيلة لواجهة برمجة التطبيقات.
  2. انقر على + خادم وكيل.
  3. في صفحة "إنشاء خادم وكيل"، اختر الاستهداف المستضاف.
  4. انقر على التالي.
  5. في حقل اسم الخادم الوكيل، أدخِل hello-hosted-targets.
  6. تأكد من تحديد نموذج"Hello World".
  7. انقر على التالي.
  8. في صفحة "الأمان"، اختَر اجتياز (بدون) للتفويض.
  9. انقر على التالي.
  10. انقر على التالي.
  11. في صفحة الإصدار، تأكَّد من اختيار البيئة الاختبارية. لاحظ أن نوع الخادم الوكيل هو الأهداف المستضافة.
  12. انقر على إنشاء ونشر. قد يستغرق اكتمال نشر الخادم الوكيل بضع لحظات.
  13. بعد نشر الخادم الوكيل بنجاح، انقر على عرض الخادم الوكيل hello-host-targets في أسفل الصفحة.
  14. استدعِ الخادم الوكيل لواجهة برمجة التطبيقات. أسهل طريقة لإجراء ذلك هي الانتقال إلى علامة التبويب التتبُّع وبدء جلسة التتبُّع، والنقر على إرسال. من المفترض أن تظهر الحالة 200 مع الردّ التالي:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

فحص الخادم الوكيل

  1. في واجهة مستخدم Edge، انقر على علامة التبويب تطوير.
  2. في "المستكشف"، اختَر تلقائي ضمن "نقاط النهاية المستهدفة".
  3. في أداة تعديل الرموز، لاحظ توفُّر عنصر <HostedTarget/> ثانوي فارغ ضمن العنصر <TargetEndpoint>. هذه العلامة الفارغة مطلوبة. ويتم إخبار Edge بأنّ الهدف من الخادم الوكيل هو تطبيق يتم نشره في بيئة الأهداف المستضافة.

  4. في المستكشف، لاحظ المحتويات الموجودة ضمن قسم النصوص البرمجية. ويتم إدراج ملفات تطبيق Node.js ضمن التصنيف مستضاف.

  5. في واجهة مستخدم Edge، افحص الملفات المدرجة ضمن المُستضافة في النصوص البرمجية:
    • يحتوي ملف app.yaml على معلومات الضبط. على سبيل المثال، يمكنك إضافة متغيرات بيئة ستكون متاحة لتطبيق Node.js في وقت التشغيل. لا تحتاج إلى تعديل هذا الملف لهذا المثال.
    • ملف index.js هو الملف الرئيسي لتطبيق Node.js.
    • إذا كان تطبيقك يحتوي على أي تبعيات للوحدات، يجب إدراجها في package.json.

عرض ملفات السجلّ

يمكن أن تكون ملفات سجلات التطبيق مفيدة لتصحيح المشاكل التي تحدث أثناء مرحلة الإصدار وفي وقت التشغيل أيضًا.

  1. في واجهة مستخدم Edge، انقر على علامة التبويب تطوير.
  2. للاطّلاع على سجلّ الإصدار، انقر على إنشاء السجلّات.
  3. للاطّلاع على سجلّ النشر، انقر على سجلّات وقت التشغيل.

    راجِع أيضًا الوصول إلى ملفات السجلّ.

ملخّص

  • لقد نشرت تطبيق Node.js بسيطًا في بيئة الأهداف المستضافة واختبرته في واجهة مستخدم Edge.
  • لقد عرفت أنّ الخادم الوكيل "للأهداف المستضافة" يتطلب علامة فارغة خاصة في نقطة النهاية المستهدفة باسم <HostedTarget/>.
  • لقد عرفت أنّ متصفّح Edge يحمّل تبعيات الوحدة تلقائيًا، وأنّه يجب إدراج التبعيات في ملف package.json.
  • تعلمت أيضًا كيفية التحقق من ملفات سجل الإصدار ووقت التشغيل.

نشر Node.js من النظام إلى Edge

يوضِّح هذا القسم كيفية نشر تطبيق Node.js مستقلّ من النظام المحلي إلى الأهداف المستضافة باستخدام apigeetool. تُجمِّع الأداة apigeetool تطبيق Node.js في خادم وكيل جديد للأهداف المستضافة وتنشره على Edge.

تثبيت أداة apigeetool

إنّ استخدام apigeetool هو الطريقة المُقترحة لمطوّري البرامج لنشر رمز الخادم الوكيل على Edge. لتثبيت apigeetool، يمكنك تشغيل الأمر التالي NPM:

npm install -g apigeetool

إنشاء تطبيق Node.js

لتسهيل الأمر، يتم تزويدك بشفرة تطبيق Node.js بسيط.

  1. أنشئ دليلاً لتطبيق Node.js. استدع الدليل node-host-express.
  2. cd إلى الدليل الجديد.
  3. أنشئ ملفًا باسم index.js وانسخ هذا الرمز إليه.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. أنشِئ ملفًا باسم package.json وانسخ هذا الرمز إليه. لاحظ أنّ الوحدة السريعة مُدرجة كتبعية.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. أنشئ ملفًا باسم app.yaml، وانسخ هذا الرمز فيه:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. تأكد من أن الدليل يظهر على النحو التالي:
    ls
    app.yaml index.js package.json
    

مراجعة بنية الدليل المطلوبة لرمز التطبيق

يجب أن يكون لتطبيق Node.js نفس بنية تطبيق Node.js العادي. ومع ذلك، احرص على استيفاء هذه المتطلبات قبل النشر باستخدام apigeetool إلى Edge:

  • يجب توفير ملف البيان app.yaml، ويجب أن يكون متوفّرًا في الدليل الجذري لتطبيقك. لمزيد من المعلومات حول هذا الملف، يمكنك الاطّلاع على ملف البيان.
  • يجب استخدام ملف package.json. ويجب أن يسرد أي تبعيات يتطلبها تطبيقك.
  • لا يلزم استخدام المجلد node_modules. يشغّل Edge npm install نيابةً عنك عند نشر تطبيق Node.js. ويحصل على التبعيات من package.json. الوقت الوحيد الذي ستحتاج فيه بشكل صريح إلى تقديم node_modules هو إذا كانت لديك وحدات مخصّصة غير متاحة من خلال npm.

نشر الخادم الوكيل

  1. في الوحدة الطرفية، cd في الدليل الجذري لتطبيق Node.js.
  2. نفِّذ apigeetool باستخدام الأمر deployhosttarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    حيث يكون -n هو الاسم الذي ترغب في منحه للخادم الوكيل الجديد. ويجب أن يكون فريدًا داخل المؤسسة. تقتصر الأحرف التي يُسمح لك باستخدامها في الاسم على ما يلي: a-z0-9._\-$%

    مثال:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    لمزيد من المعلومات عن استخدام apigeetool، يُرجى الاطّلاع على https://github.com/apigee/apigeetool-node.

اختبار الخادم الوكيل

ويمكنك اختبار الخادم الوكيل باستخدام أمر cURL أو مع برنامج REST مثل Postman أو في واجهة مستخدم Edge في أداة التتبُّع. إليك مثال على أمر cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

الحصول على سجلات الإصدار

تعرض لك سجلات الإصدار المخرجات ذات الصلة بنشر تطبيق Node.js وإنشائه. راجع أيضًا ملفات السجل.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

مثال:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

الحصول على سجلات وقت التشغيل

تعرض سجلات وقت التشغيل مخرجات ذات صلة بالتطبيق قيد التشغيل. يتم تحديد نطاق سجلات وقت التشغيل للبيئة وعرض السجلات لنسخة الخادم الوكيل المنشورة حاليًا. راجِع أيضًا ملفات السجلّ.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

مثال:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

عرض الخادم الوكيل في واجهة مستخدم Edge

بعد عملية نشر ناجحة، يمكنك عرض الخادم الوكيل وتعديله في جزء وكلاء واجهة برمجة التطبيقات من واجهة مستخدم Edge.

نقل خادم وكيل Node.js حالي إلى خادم وكيل للأهداف المستضافة

يوضّح هذا القسم يدويًا طريقة نقل الخادم الوكيل الحالي لواجهة برمجة تطبيقات Edge الذي يستعين بتنفيذ هدف Node.js التقليدي إلى الأهداف المستضافة. وتشرح أيضًا كيفية نشر الخادم الوكيل بعد تنفيذ خطوات نقل البيانات.

تحافظ خطوات نقل البيانات على بنية الخادم الوكيل لواجهة برمجة التطبيقات وسياساته ومساراته وعناصر الضبط الأخرى. يمكنك إجراء عملية نقل البيانات باتّباع أربع خطوات على النحو الموضّح أدناه، ثم نشر الخادم الوكيل الذي تم نقله باستخدام apigeetool.

الخطوة 1: ضبط بنية ملف الخادم الوكيل

لضبط بنية الملف، يجب أن يكون الخادم الوكيل لواجهة برمجة التطبيقات في نظام الملفات المحلي. في حال نشر الخادم الوكيل على Edge، يجب تنزيله قبل المتابعة. في الإعداد التقليدي، يتبع خادم وكيل Edge "حزمة" التي تتضمن رمز Node.js بنية الملف هذه. يتم وضع رمز تطبيق Node.js في دليل resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


بالنسبة إلى الأهداف المستضافة، يجب وضع الدليل الجذري لتطبيق Node.js ضمن دليل يُسمى resources/hosted. ما عليك سوى إنشاء دليل جديد باسم الموارد/المستضافة ونقل محتوى resources/node إليه. وبعد ذلك، يمكنك حذف دليل resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

الخطوة 2: إضافة ملف البيان

أنشئ ملف بيان باسم app.yaml وضعه في دليل apiproxy/resources/hosted.

في ما يلي مثال على ملف app.yaml. ويحدّد أن وقت التشغيل Node.js (مطلوب). كما تنشئ أيضًا متغير بيئة في بيئة التنفيذ (متغيّر يمكن الوصول إليه عن طريق تطبيق Node.js). تجدر الإشارة إلى أنّ متغيّر البيئة اختياري، ويظهر هنا كمثال فقط. لمعرفة مزيد من التفاصيل والأمثلة، يُرجى الاطّلاع على ملف البيان.

runtime: node
  env:
    - name: NODE_ENV
      value: production


يوضح المثال التالي بنية مشروع Node.js في الموقع الصحيح على الخادم الوكيل لنشر الأهداف المستضافة:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

الخطوة 3: التأكّد من استخدام ملف package.json

في الخوادم الوكيلة التقليدية لـ Edge Node.js، كانت package.json اختيارية. ومع ذلك، بالنسبة إلى الأهداف المستضافة، يجب توفير واحد في دليل apiproxy/resources/hosted. تأكد من تحديد أي تبعيات مطلوبة لتطبيقك في هذا الملف.

الخطوة 4: تعديل نقطة النهاية المستهدفة للخادم الوكيل

يتطلب خادم Node.js الوكيل التقليدي أن تكون علامة تُسمى <ScriptTarget> موجودة في ملف نقطة النهاية المستهدفة (عادةً /apiproxy/targets/default.xml). بالنسبة إلى الأهداف المستضافة، يجب إضافة علامة فارغة تُسمى <HostedTarget/>. إذا كانت هناك علامة ScriptTarget في الملف، ما عليك سوى إزالتها. مثال:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

نشر الخادم الوكيل

يمكنك الآن نشر الخادم الوكيل باستخدام الأمر apigeetool deployproxy.

  1. cd إلى الدليل الجذري للخادم الوكيل: /apiproxy
  2. استخدِم هذا الأمر لنشر الخادم الوكيل:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    مثال:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

لمزيد من المعلومات عن استخدام "apigeetool"، يُرجى الاطّلاع على: https://github.com/apigee/apigeetool-node/blob/master/README.md.

اختبار الخادم الوكيل

ويمكنك اختبار الخادم الوكيل باستخدام أمر cURL أو مع برنامج REST مثل Postman أو في واجهة مستخدم Edge في أداة التتبُّع. وفي ما يلي مثال على أمر cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!