آموزش های Hosted Targets

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

آموزش‌های زیر نحوه استقرار برنامه‌های Node.js در Edge را با استفاده از Hosted Targets توضیح می‌دهند، یک محیط زمان اجرا Node.js بومی که توسط Apigee میزبانی می‌شود.

آموزش ها وظایف زیر را طی می کنند:

  • استقرار یک برنامه Node.js در اهداف میزبانی شده با استفاده از رابط کاربری Edge.
  • استقرار یک برنامه Node.js برای اهداف میزبانی شده از دستگاه توسعه محلی شما.
  • انتقال یک پروکسی موجود با اجرای هدف سنتی Edge Node.js به Hosted Targets.

یک برنامه Node.js را با استفاده از رابط کاربری Edge در Hosted Targets اجرا کنید

در این آموزش، شما یک برنامه ساده Node.js را با استفاده از رابط کاربری Edge بر روی Hosted Targets مستقر خواهید کرد. هنگامی که آموزش را کامل کردید، ساختار و محتویات اصلی یک پراکسی Hosted Targets و نحوه دسترسی به استقرار و ساخت فایل های گزارش را خواهید فهمید.

وارد شوید

  1. به: apigee.com/edge بروید
  2. برای ورود به سیستم، اطلاعات کاربری Apigee خود را وارد کنید.

یک پروکسی جدید ایجاد کنید

  1. در منوی پیمایش کناری، Develop > API Proxies را انتخاب کنید.
  2. روی + Proxy کلیک کنید.
  3. در صفحه ایجاد پروکسی، Hosted Target را انتخاب کنید.
  4. روی Next کلیک کنید.
  5. در قسمت نام پروکسی، hello-hosted-targets را وارد کنید.
  6. مطمئن شوید که "Hello World" نمونه انتخاب شده است.
  7. روی Next کلیک کنید.
  8. در صفحه امنیت، Pass through (none) را برای مجوز انتخاب کنید.
  9. روی Next کلیک کنید.
  10. روی Next کلیک کنید.
  11. در صفحه ساخت، مطمئن شوید که محیط تست انتخاب شده است. توجه داشته باشید که نوع پراکسی Hosted Targets است.
  12. روی Build and Deploy کلیک کنید. ممکن است چند لحظه طول بکشد تا استقرار پراکسی تکمیل شود.
  13. پس از اینکه پراکسی با موفقیت مستقر شد، روی View hello-hosted-targets proxy در پایین صفحه کلیک کنید.
  14. با پروکسی API تماس بگیرید. ساده ترین راه برای انجام این کار این است که به برگه Trace بروید، یک جلسه Trace را شروع کنید و روی Send کلیک کنید. شما باید یک وضعیت 200 با پاسخ زیر دریافت کنید:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

پروکسی را بررسی کنید

  1. در رابط کاربری Edge، روی تب Develop کلیک کنید.
  2. در Navigator، پیش فرض را در قسمت Target Endpoints انتخاب کنید.
  3. در ویرایشگر کد، توجه کنید که یک عنصر فرزند <HostedTarget/> در زیر عنصر <TargetEndpoint> وجود دارد. این تگ خالی مورد نیاز است. به Edge می گوید که هدف پروکسی برنامه ای است که در محیط Hosted Targets مستقر شده است.

  4. در Navigator، به محتویات زیر بخش Scripts توجه کنید. فایل‌های برنامه Node.js در زیر برچسب میزبان فهرست شده‌اند.

  5. در رابط کاربری Edge، فایل های فهرست شده در زیر میزبانی شده در اسکریپت ها را بررسی کنید:
    • فایل app.yaml حاوی اطلاعات پیکربندی است. به عنوان مثال، می توانید متغیرهای محیطی را اضافه کنید که در زمان اجرا به برنامه Node.js در دسترس خواهند بود. برای این مثال نیازی به تغییر این فایل نیست.
    • فایل index.js فایل اصلی برنامه Node.js است.
    • اگر برنامه شما وابستگی های ماژولی دارد، باید در package.json فهرست شود.

مشاهده فایل های گزارش

فایل های گزارش برنامه می توانند برای اشکال زدایی مشکلاتی که در مرحله ساخت و همچنین در زمان اجرا رخ می دهند مفید باشند.

  1. در رابط کاربری Edge، روی تب Develop کلیک کنید.
  2. برای دیدن گزارش ساخت، روی Build Logs کلیک کنید.
  3. برای مشاهده گزارش استقرار، روی Runtime Logs کلیک کنید.

    همچنین به دسترسی به فایل های گزارش مراجعه کنید.

خلاصه

  • شما یک برنامه ساده Node.js را در محیط Hosted Targets مستقر کردید و آن را در رابط کاربری Edge آزمایش کردید.
  • متوجه شدید که یک پراکسی Hosted Target به یک تگ خالی ویژه در نقطه پایانی Target به نام <HostedTarget/> نیاز دارد.
  • شما یاد گرفتید که Edge وابستگی های ماژول را به طور خودکار برای شما بارگیری می کند و وابستگی ها باید در فایل package.json فهرست شوند.
  • همچنین یاد گرفتید که چگونه فایل های لاگ ساخت و زمان اجرا را بررسی کنید.

Node.js را از سیستم خود در Edge مستقر کنید

این بخش نحوه استقرار یک برنامه مستقل Node.js را از سیستم محلی خود در Hosted Targets با استفاده از apigeetool توضیح می دهد. ابزار apigeetool برنامه Node.js را در یک پراکسی Hosted Targets جدید دسته بندی می کند و آن را در Edge مستقر می کند.

apigeetool را نصب کنید

استفاده از apigeetool راه پیشنهادی برای توسعه دهندگان برای استقرار کد پروکسی در Edge است. برای نصب apigeetool دستور NPM زیر را اجرا کنید:

npm install -g apigeetool

برنامه Node.js را ایجاد کنید

برای آسان کردن کارها، کد یک برنامه ساده Node.js برای شما ارائه شده است.

  1. یک دایرکتوری برای برنامه Node.js ایجاد کنید. دایرکتوری node-hosted-express را فراخوانی کنید.
  2. سی دی به دایرکتوری جدید.
  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 لازم نیست . هنگامی که برنامه Node.js مستقر است، Edge npm install را برای شما اجرا می کند. وابستگی ها را از package.json دریافت می کند. تنها زمانی که نیاز دارید به طور صریح node_modules را ارائه دهید این است که ماژول های سفارشی دارید که از طریق npm در دسترس نیستند.

استقرار پروکسی

  1. در یک ترمینال، سی دی را به دایرکتوری ریشه برنامه Node.js خود وارد کنید.
  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 UI در ابزار Trace تست کنید. در اینجا یک نمونه دستور 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

پس از استقرار موفقیت آمیز، می توانید پروکسی خود را در قسمت API Proxies از Edge UI مشاهده و ویرایش کنید.

انتقال یک پروکسی Node.js موجود به یک پراکسی Hosted Targets

این بخش نحوه انتقال دستی یک پراکسی Edge API موجود را که از پیاده‌سازی هدف Node.js سنتی به Hosted Targets استفاده می‌کند، توضیح می‌دهد. همچنین نحوه استقرار پروکسی را پس از انجام مراحل مهاجرت توضیح می دهد.

مراحل مهاجرت، ساختار پروکسی API، سیاست ها، جریان ها و سایر عناصر پیکربندی را حفظ می کند. می توانید مهاجرت را در چهار مرحله انجام دهید، همانطور که در زیر توضیح داده شده است، و سپس پروکسی مهاجرت شده را با apigeetool مستقر کنید.

مرحله 1: ساختار فایل پروکسی را تنظیم کنید

برای تنظیم ساختار فایل، پراکسی API باید در سیستم فایل محلی شما باشد. اگر پروکسی در Edge مستقر است، قبل از ادامه باید آن را دانلود کنید . در پیکربندی سنتی، "بسته" پروکسی Edge که شامل کد Node.js است از این ساختار فایل پیروی می کند. کد برنامه Node.js در فهرست resources/node قرار می گیرد:

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


برای Hosted Targets، باید دایرکتوری ریشه برنامه Node.js خود را در فهرستی به نام resources/hosted قرار دهید. به سادگی یک دایرکتوری جدید به نام source/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 را نشان می‌دهد که در مکان صحیح در پروکسی برای استقرار Hosted Targets قرار دارد:

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

مرحله 3: مطمئن شوید که یک فایل package.json دارید

در پراکسی های سنتی Edge Node.js، package.json اختیاری بود. با این حال، برای Hosted Targets، باید یکی را در دایرکتوری apiproxy/resources/hosted ارائه کنید. اطمینان حاصل کنید که وابستگی های مورد نیاز برای برنامه خود را در این فایل مشخص کنید.

مرحله 4: نقطه پایانی هدف پروکسی را تغییر دهید

یک پروکسی سنتی Node.js مستلزم آن است که برچسبی به نام <ScriptTarget> در فایل نقطه پایانی هدف (معمولا /apiproxy/targets/default.xml ) وجود داشته باشد. برای Hosted Target، باید یک تگ خالی به نام <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. سی دی به دایرکتوری ریشه پروکسی شما: /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 UI در ابزار Trace تست کنید. در اینجا یک مثال دستور cURL آمده است:

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