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

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

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

توضّح البرامج التعليمية المهام التالية:

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

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

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

تسجيل الدخول

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

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

  1. في قائمة التنقّل الجانبية، انقر على تطوير > وكلاء واجهة برمجة التطبيقات.
  2. انقر على + الوكيل.
  3. في صفحة "إنشاء وكيل"، انقر على الوجهة المستضافة.
  4. انقر على التالي.
  5. في حقل "اسم الوكيل"، أدخِل hello-hosted-targets.
  6. تأكَّد من اختيار "Hello World" Sample.
  7. انقر على التالي.
  8. في صفحة "الأمان"، اختَر تمرير (بدون) للإذن.
  9. انقر على التالي.
  10. انقر على التالي.
  11. في صفحة "الإصدار"، تأكَّد من اختيار بيئة الاختبار. لاحظ أنّ "نوع الوكيل" هو الوجهات المستضافة.
  12. انقر على الإصدار والنشر. قد يستغرق نشر الوكيل بضع لحظات.
  13. بعد نشر الوكيل بنجاح، انقر على عرض وكيل hello-hosted-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.

يجب أن تعرض تطبيقات Node.js التي يتم تشغيلها في "الوجهات المستضافة" واجهة برمجة تطبيقات HTTP تستمع

تثبيت apigeetool

يُنصح المطوّرون باستخدام apigeetool لنشر رمز الوكيل على Edge. لتثبيت apigeetool شغِّل أمر NPM التالي:

npm install -g apigeetool

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

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

  1. أنشِئ دليلاً لتطبيق Node.js. وأطلِق على الدليل اسم node-hosted-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 وانسَخ هذا الرمز وألصِقه فيه. لاحظ أنّ وحدة express مُدرَجة كإحدى التبعيات.
  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. تحصل Edge على التبعيات من package.json. لن تحتاج إلى توفير node_modules بشكلٍ صريح إلا إذا كانت لديك وحدات مخصّصة غير متاحة من خلال npm.

نشر الوكيل

  1. في نافذة طرفية، انتقِل إلى الدليل الجذر لتطبيق Node.js باستخدام الأمر cd.
  2. نفِّذ apigeetool باستخدام الأمر deployhostedtarget:
  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/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

في وكلاء Node.js التقليديين في Edge، كان 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!