استقرار یک برنامه مستقل Node.js

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

این مبحث نحوه‌ی استقرار یک برنامه‌ی Node.js از سیستم محلی شما روی Apigee Edge را توضیح می‌دهد. در این مبحث، ما در مورد نحوه‌ی استفاده از یک ابزار خط فرمان به نام apigeetool برای استقرار برنامه‌های Node.js روی Apigee Edge بحث خواهیم کرد.

درباره استقرار کد Node.js در Apigee Edge

شما می‌توانید یک برنامه API Node.js موجود، شامل هر ماژول Node.js وابسته، را از سیستم محلی خود با استفاده از یک ابزار خط فرمان به نام apigeetool روی Apigee Edge مستقر کنید. این ابزار به طور خودکار برنامه و وابستگی‌های آن را در یک پروکسی API قرار می‌دهد و آن را روی Edge مستقر می‌کند.

برای مثال، فرض کنید از Express برای ایجاد یک برنامه وب در Node.js استفاده کرده‌اید. این برنامه به عنوان یک سرور HTTP اجرا می‌شود که به درخواست‌های HTTP گوش می‌دهد، آن درخواست‌ها را پردازش می‌کند، داده‌ها را برمی‌گرداند و غیره. وقتی از apigeetool برای استقرار یک برنامه Node.js در Edge استفاده می‌کنید، در یک پروکسی قرار می‌گیرد و در چارچوب پلتفرم Edge اجرا می‌شود. سپس می‌توانید برنامه خود را از طریق URL پروکسی جدید آن فراخوانی کنید و با "پوشاندن" آن با ویژگی‌های استاندارد Edge مانند امنیت OAuth، سیاست‌های سهمیه‌بندی، سیاست‌های محافظت در برابر تهدید، جریان‌های شرطی، ذخیره‌سازی و بسیاری موارد دیگر، به آن ارزش ببخشید.

apigeetool چه کاری انجام می‌دهد؟

وقتی ابزار apigeetool را با گزینه deploynodeapp اجرا می‌کنید، این اتفاق می‌افتد:

  • یک بسته پیکربندی پروکسی API برای قرار دادن برنامه Node.js تولید می‌کند.
  • برنامه Node.js را با هر بسته Node.js که با NPM (ماژول‌های بسته‌بندی‌شده Node) نصب شده است، بسته‌بندی می‌کند.
  • بسته پیکربندی پروکسی API را با استفاده از API مدیریت Edge به سازمان مشخص شده در Apigee Edge وارد می‌کند.
  • پروکسی API را در یک محیط مستقر می‌کند.
  • برنامه Node.js را روی Apigee Edge اجرا می‌کند و آن را از طریق شبکه در دسترس قرار می‌دهد.

آماده شدن برای استفاده از apigeetool

قبل از شروع، باید ابزار apigeetool را نصب کنید.

شما می‌توانید apigeetool را یا از طریق npm یا با کپی کردن و لینک کردن کد از GitHub نصب کنید.

نصب از npm

ماژول apigeetool و وابستگی‌های آن برای Node.js طراحی شده‌اند و با استفاده از دستور زیر از طریق npm در دسترس هستند:

$ sudo npm install -g apigeetool

معمولاً گزینه -g ماژول‌ها را در مسیر /usr/local/lib/node_modules/apigeetool در دستگاه‌های مبتنی بر *nix قرار می‌دهد.

نصب از گیت‌هاب

ابزارهای پلتفرم API را از گیت‌هاب دانلود یا کلون کنید. برای دستورالعمل‌های نصب، به فایل README در دایرکتوری ریشه مخزن مراجعه کنید.

$ git clone https://github.com/apigee/apigeetool-node.git

پس از اتمام نصب، مطمئن شوید که فایل اجرایی apigeetool در مسیر شما قرار دارد. می‌توانید با تایپ کردن دستور زیر آن را امتحان کنید:

$ apigeetool -h

استقرار یک برنامه Node.js در Edge با apigeetool

توجه: قبل از استقرار، باید نام سازمان Apigee Edge، نام کاربری و رمز عبور حساب Apigee Edge خود را بدانید. برای اجرای صحیح دستور apigeetool به این اطلاعات نیاز دارید.

برای استقرار یک برنامه Node.js با استفاده از apigeetool :

  1. در یک پنجره ترمینال، دایرکتوری ریشه برنامه Node.js خود را cd .
  2. ابزار apigeetool را با دستور deploynodeapp اجرا کنید:

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    برای مثال:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. خروجی را در پنجره ترمینال خود بررسی کنید. چیزی شبیه به این خواهد بود:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed

    اگر عبارت "وضعیت: مستقر" را مشاهده کردید، کار تمام است. همه چیز به خوبی پیش رفت. برنامه Node.js شما در یک پروکسی API قرار گرفته، در Edge مستقر شده و در حال اجرا و انتظار برای رسیدگی به درخواست‌ها است. آماده آزمایش است.

  4. پروکسی خود را آزمایش کنید. برای مثال:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. در صورت تمایل، وارد حساب کاربری Apigee Edge خود شوید و به صفحه API Proxies در رابط کاربری مدیریت بروید. پروکسی جدید خود را در آنجا مشاهده خواهید کرد.

نحوه مدیریت فایل‌ها و ماژول‌های وابسته توسط apigeetool

اگر برنامه Node.js شما به ماژول‌های نصب شده وابسته است، apigeetool با فشرده‌سازی پوشه node_modules و افزودن آن به بسته proxy، آنها را مدیریت می‌کند. هیچ اقدام اضافی لازم نیست. همین امر در مورد هر دایرکتوری که حاوی کد منبع اضافی است نیز صادق است. ابزار apigeetool آنها را فشرده کرده و همراه با بسته نصب می‌کند.

شما نمی‌توانید فایل‌های موجود در این دایرکتوری‌های زیپ‌شده را در ویرایشگر رابط کاربری مدیریت Edge ویرایش کنید. در صورت نیاز به تغییر آنها، می‌توانید پروژه خود را صادر کنید، فایل‌ها را به صورت محلی ویرایش کنید و سپس با استفاده از apigeetool یا با وارد کردن پروژه صادر شده با استفاده از رابط کاربری مدیریت، مجدداً مستقر کنید. همچنین به « صادر کردن و وارد کردن یک پروکسی با کد Node.js » مراجعه کنید.

اطلاعات اولیه استفاده از apigeetool

برای اطلاعات اولیه در مورد پارامترهای ورودی ابزار apigeetool ، وارد کنید:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

ایجاد یک پروکسی جدید با فایل‌های Node.js موجود

راه دیگر برای ادغام یک برنامه Node.js موجود در یک پروکسی API، اضافه کردن برنامه هنگام ایجاد پروکسی است. می‌توانید این کار را کاملاً از طریق رابط کاربری مدیریت و کادر محاوره‌ای پروکسی API جدید انجام دهید.

  1. از صفحه خلاصه پروکسی API، روی +API Proxy کلیک کنید.
  2. در پنجره‌ی New API Proxy، گزینه‌ی Existing Node.js را انتخاب کنید.
  3. از دکمه‌ی Choose Files برای انتخاب یک یا چند فایل Node.js جهت وارد کردن استفاده کنید.
  4. به پروکسی یک نام بدهید. در این مثال، ما آن را hellonode می‌نامیم.
  5. نسخه /v1 را به مسیر پایه پروژه اضافه کنید. نسخه‌بندی API شما بهترین روش است.
  6. روی ساخت کلیک کنید.
  7. برای ورود به نمای توسعه، روی توسعه کلیک کنید.
  8. فایل TargetEndpoint را در ویرایشگر کد باز کنید.
  9. مطمئن شوید که عنصر <ScriptTarget> فایل اصلی Node.js را به صورت زیر مشخص می‌کند:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
  10. روی ذخیره کلیک کنید.

افزودن و فراخوانی فایل‌های منبع جدید Node.js

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

افزودن فایل‌های جدید Node.js از طریق رابط کاربری

رابط کاربری مدیریت به شما امکان می‌دهد فایل‌های منبع Node.js اضافی را به یک پروکسی که روی پلتفرم Edge است اضافه کنید. می‌توانید آنها را مستقیماً در رابط کاربری ایجاد کنید یا آنها را از سیستم فایل خود وارد کنید. ابتدا، بیایید نحوه انجام این کار را از رابط کاربری بررسی کنیم.

برای ایجاد یک فایل منبع Node.js جدید:

  1. در نمای توسعه، از منوی جدید، اسکریپت جدید را انتخاب کنید.
  2. در پنجره‌ی Add Script، نوع فایل Node را انتخاب کرده و نام اسکریپت را وارد کنید.
  3. روی افزودن کلیک کنید.

فایل جدید و خالی Node.js در ویرایشگر باز می‌شود. می‌توانید کد خود را کپی کرده و در فایل جای‌گذاری کنید. این فایل همچنین در بخش اسکریپت‌های ناوبر (Navigator) ظاهر می‌شود.

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]

وارد کردن فایل‌های Node.js از سیستم فایل شما

برای وارد کردن یک فایل Node.js از سیستم فایل خود به پروکسی:

  1. در نمای توسعه، از منوی جدید، اسکریپت جدید را انتخاب کنید.
  2. در پنجره‌ی «افزودن اسکریپت»، روی «وارد کردن اسکریپت» کلیک کنید.
  3. از ابزار فایل برای انتخاب فایل Node.js خود استفاده کنید.
  4. نام فایل به کادر محاوره‌ای اضافه می‌شود، اما در صورت تمایل می‌توانید آن را تغییر دهید.
  5. روی افزودن کلیک کنید. فایل در بخش اسکریپت‌های ناوبر ظاهر می‌شود و در ویرایشگر باز می‌شود.
  6. روی ذخیره کلیک کنید.

اگر می‌خواهید فایل وارد شده را فراخوانی کنید، یک مرحله اضافی لازم است، همانطور که در بخش بعدی توضیح داده شده است.

فراخوانی یک فایل Node.js وارد شده

شما نمی‌توانید به سادگی یک فایل Node.js تازه وارد شده یا ایجاد شده را فراخوانی کنید. دلیل این امر این است که Edge الزام می‌کند که یک فایل Node.js، فایل اصلی باشد. فایل اصلی در عنصر <ScriptTarget> از تعریف Target Endpoint مشخص شده است. برای مشخص کردن اینکه کدام فایل، فایل اصلی Node.js است، موارد زیر را انجام دهید:

  1. در قسمت Target Endpoints در ناوبر، روی نام نقطه پایانی هدف (که معمولاً default نامیده می‌شود) کلیک کنید.
  2. در ویرایشگر کد، عنصر <ScriptTarget> را با تغییر <ResourceURL> ویرایش کنید تا نام فایلی که می‌خواهید فایل اصلی Node.js باشد را منعکس کند. برای مثال، اگر می‌خواهید فایلی به نام hello-world.js فایل اصلی باشد، باید node://hello-world.js در عنصر ResourceURL وارد کنید.
  3. روی ذخیره کلیک کنید.

در این مرحله، می‌توانید فایل را با هر مسیر پروکسی که قبلاً استفاده کرده‌اید، فراخوانی کنید. برای مثال، ما به مثال Hello World! نگاهی انداخته‌ایم که در آن مسیر پایه v1/hello مشخص شده است. با این حال، می‌توانید مسیر پایه را با ویرایش Proxy Endpoint تغییر دهید.

  1. در قسمت Proxy Endpoints در ناوبر، روی نام نقطه پایانی پروکسی (که معمولاً default نامیده می‌شود) کلیک کنید.
  2. در ویرایشگر کد، عنصر <HttpProxyConnection> را با تغییر <BasePath> به هر نامی که می‌خواهید ویرایش کنید. برای مثال، اگر <BasePath> فعلی v1/hello است و شما می‌خواستید v1/my-node-file باشد، عنصر <BasePath> را به این صورت تغییر دهید:

    <BasePath>/v1/my-node-file</BasePath>
  3. روی ذخیره کلیک کنید.
  4. پروکسی را با استفاده از مسیر پایه جدید، مانند این، فراخوانی کنید:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

خروجی گرفتن و وارد کردن یک پروکسی با کد Node.js

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

  1. از صفحه خلاصه پروکسی API، روی «توسعه» کلیک کنید.
  2. در صفحه توسعه، دانلود نسخه فعلی را انتخاب کنید.
  3. فایل دانلود شده را روی سیستم خود از حالت فشرده خارج کنید.

شما می‌توانید با انتخاب گزینه‌ی «وارد کردن به نسخه‌ی جدید» از همان منو، بسته‌ی پروکسی را دوباره به اج وارد کنید.

همچنین می‌توانید از API برای استقرار پروکسی‌ها استفاده کنید. برای جزئیات بیشتر به «استقرار پروکسی‌ها از خط فرمان» مراجعه کنید.

مراحل بعدی

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