وظایف Hosted Targets

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

بازگشایی پراکسی Hosted Targets

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

حذف پراکسی Hosted Targets

پس از حذف پراکسی Hosted Targets، نمونه‌های زمان اجرا زیربنایی در مدت زمانی کوتاه از کار خواهند افتاد. کد برنامه همچنان باقی خواهد ماند.

دسترسی به فایل های گزارش

فایل های گزارش برای اشکال زدایی و عیب یابی مفید هستند. شما می توانید دو نوع فایل گزارش را برای استقرار Hosted Targets مشاهده کنید:

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

دسترسی به گزارش‌ها از رابط کاربری Edge

  1. به: apigee.com/edge بروید
  2. اعتبار ورود خود را وارد کرده و روی Sign In کلیک کنید.
  3. Develop > API Proxies را در منوی ناوبری کناری انتخاب کنید.
  4. پروکسی را که می‌خواهید گزارش‌ها را برای آن مشاهده کنید انتخاب کنید.
  5. روی تب Develop کلیک کنید.
  6. برای دیدن گزارش ساخت، روی Build Logs کلیک کنید.
  7. برای مشاهده گزارش زمان اجرا، روی Runtime Logs کلیک کنید.

دسترسی به گزارش‌ها با API

همچنین می‌توانید از Edge API برای بازیابی گزارش‌های Hosted Targets استفاده کنید. برای جزئیات، به دریافت گزارش‌های ذخیره شده Node.js مراجعه کنید.

با استفاده از یک مخزن خصوصی npm

این بخش نحوه استقرار یک پروکسی Node.js را برای اهداف میزبانی شده در مواردی که از یک مخزن NPM خصوصی در محیط توسعه خود استفاده می کنید، توضیح می دهد.

آنچه شما باید در مورد استفاده از یک مخزن خصوصی بدانید

هنگامی که یک برنامه Node.js را در Edge مستقر می کنید، تمام وابستگی های پروژه شما به طور خودکار به عنوان بخشی از فرآیند استقرار وارد می شوند. اساساً، Hosted Targets npm install بر روی کد شما در هنگام استقرار اجرا می کند. با این حال، اگر از یک مخزن NPM خصوصی در محیط توسعه خود استفاده می کنید، وابستگی های خصوصی در Cloud قابل حل نیستند. در این مورد، راه حل استفاده از گزینه --bundled-dependencies هنگام استفاده از ابزار استقرار apigeetool است. همچنین به Deploy Node.js از سیستم خود در Edge مراجعه کنید.

هنگامی که از پرچم --bundled-dependencies در apigeetool استفاده می کنید، برنامه Node.js شما در Hosted Targets آپلود می شود و هر فایل محلی/خصوصی که در آرایه bundledDependencies در package.json فهرست شده است زیپ شده و همراه با بسته آپلود می شود.

اگرچه یک وضعیت معمولی نیست، اما توجه داشته باشید که اگر یک مخزن عمومی NPM را به صورت داخلی بازتاب دهید، اگر بسته استقرار شما شامل فایل .npmrc یا package-lock.json باشد که به آینه خصوصی شما اشاره می کند، استقرار شما با شکست مواجه خواهد شد. در این مورد، مطمئن شوید که .npmrc یا package-lock.json از بسته پراکسی خود که می‌خواهید استقرار دهید حذف کنید.

استقرار با یک مخزن NPM خصوصی

برای استفاده از ماژول های ارائه شده از یک مخزن NPM خصوصی، مراحل زیر را دنبال کنید:

  1. وارد npm شوید:
    npm login
  2. یک رمز تأیید npm دریافت کنید:
    1. npmrc. خود را پیدا کنید (باید در ~/.npmrc باشد).
    2. در npmrc. خود، نشانه ای را در انتهای خط که به شکل زیر است، یادداشت کنید:

      //registry.npmjs.org/:_authToken=****
    3. یا npm token <list | create | revoke> استفاده کنید npm token <list | create | revoke> دستورات برای فهرست کردن، ایجاد یا لغو یک نشانه اعتبار. برای جزئیات بیشتر به مستندات npm-token مراجعه کنید.
  3. همانطور که در زیر توضیح داده شده است به صفحه پیکربندی Key Value Maps دسترسی پیدا کنید.

    لبه

    برای دسترسی به صفحه پیکربندی Key Value Maps با استفاده از رابط کاربری Edge:

    1. به apigee.com/edge وارد شوید.
    2. Admin > Environments > Key Value Maps را در نوار پیمایش سمت چپ انتخاب کنید.

    Classic Edge (ابر خصوصی)

    برای دسترسی به صفحه پیکربندی Key Value Maps با استفاده از Classic Edge UI:

    1. به http:// ms-ip :9000 وارد شوید، جایی که ms-ip آدرس IP یا نام DNS گره مدیریت سرور است.
    2. APIs > Environment Configuration > Key Value Maps را در نوار پیمایش بالا انتخاب کنید.
  4. روی + Key Value Map کلیک کنید.
  5. در گفتگوی نقشه ارزش کلید جدید، یک نام وارد کنید و رمزگذاری شده را انتخاب کنید.
  6. روی افزودن کلیک کنید.
  7. در هر یک از KVM هایی که به تازگی ایجاد کرده اید، نشانه اعتباری را که قبلاً قرار داده اید یا ایجاد کرده اید، به عنوان ورودی جدید اضافه کنید.
  8. در فایل app.yaml خود یک ورودی اضافه کنید که به KVM و کلید مرتبط با رمز تأیید npm اشاره می کند. باید چیزی شبیه این باشد:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    کجا:

    • ویژگی نام سطح بالا مربوط به نام متغیر محیطی است که ایجاد می شود.
    • نام زیر valueRef مربوط به KVM است که قبلا ایجاد کرده اید.
    • ویژگی کلید مربوط به کلیدی است که به نشانه npm که به KVM اضافه کرده‌اید نگاشت می‌شود.
  10. یک فایل npmrc. در همان دایرکتوری با package.json خود ایجاد کنید. این فایل باید شبیه به این باشد:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    یا اگر از registry.npmjs.org استفاده نمی کنید، می توانید محدوده را در فایل .npmrc با افزودن خطی مانند این @myscope:registry=https://mycustomregistry.example.org تنظیم کنید. همچنین به مستندات npmrc مراجعه کنید.
  11. پراکسی Node.js خود را با فایل npmrc. و فایل های app.yaml آپلود یا به روز کنید.
  12. مطمئن شوید که پروکسی جدید یا به روز شده شما مستقر شده و با ماژول مخزن خصوصی مورد نظر کار می کند.
  13. اگر پروکسی مستقر نشد، لاگ های ساخت را بررسی کنید تا ببینید آیا در نصب ماژول خصوصی npm شکست خورده است یا خیر. اگر چنین است:
    1. در زیر برگه توسعه، مطمئن شوید که npmrc. وجود دارد.
    2. مطمئن شوید که توکن شما معتبر است (سعی کنید ماژول را به صورت محلی با توکن موجود در kvm نصب کنید).
    3. اگر از یک محدوده سفارشی استفاده می کنید، مطمئن شوید که تنظیم شده است.

تعیین نسخه NPM برای وابستگی های همراه

به طور پیش فرض، NPM v4 برای نصب وابستگی های همراه در محیط Hosted Targets استفاده می شود. با این حال، اگر می خواهید از نسخه NPM دیگری استفاده کنید، می توانید آن را در متغیر محیطی NPM_VERSION مشخص کنید. می توانید این متغیر را در فایل مانیفست برنامه تنظیم کنید. برای جزئیات بیشتر به عناصر فایل Manifest مراجعه کنید.

اگر از وابستگی‌های همراه استفاده می‌کنید، و اگر NPM_VERSION مشخص نکرده‌اید، Hosted Targets به‌طور پیش‌فرض از NPM نسخه ۴ استفاده می‌کند. اگر از وابستگی‌های همراه استفاده نمی‌کنید، از نسخه NPM که در زمان اجرا Node.js مشخص‌شده‌تان گنجانده شده استفاده می‌شود.

نمونه وابستگی های همراه

برای مثالی که ویژگی وابستگی‌های همراه را با Hosted Targets نشان می‌دهد، به نحوه ایجاد یک برنامه Node.js با توابع میزبانی شده با استفاده از ماژول‌های سفارشی مراجعه کنید.

یک نقطه پایانی بررسی سلامت اضافه کنید

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

به طور پیش فرض، نقطه پایانی که Apigee انتظار دارد /health است. می‌توانید با تعیین نقطه پایانی در متغیر محیطی به نام HOSTED_TARGET_HEALTH_CHECK_PATH ، نقطه پایانی پیش‌فرض را تغییر دهید. می توانید این متغیر را در فایل مانیفست برنامه تنظیم کنید. برای جزئیات بیشتر به عناصر فایل Manifest مراجعه کنید.

اجرای یک نقطه پایانی بررسی سلامت لازم نیست. با این حال، اگر یک نقطه پایانی بررسی سلامت را اجرا می کنید، به موارد زیر توجه کنید:

  • اگر برنامه شما با رسیدن Apigee به نقطه پایانی خارج شود، برنامه همانطور که انتظار می رود راه اندازی نمی شود.
  • اگر نقطه پایانی شما وضعیت HTTP 404 یافت نشد را برگرداند، اشکالی ندارد. /health یا HOSTED_TARGET_HEALTH_CHECK_PATH فقط برای بررسی اینکه آیا برنامه شما در حال اجرا است استفاده می شود. پاسخ واقعی نادیده گرفته می شود.

مکان کش NPM را تغییر دهید

نسخه های جدیدتر Node.js از نسخه ای از NPM استفاده می کنند که از /root/.npm برای کش NPM استفاده می کند. این مکان برای Hosted Targets مشکلی ایجاد می کند زیرا آن مکان دایرکتوری فقط خواندنی است زیرا زمان اجرای Hosted Target از یک سیستم فایل tmpfs استفاده می کند که در آن فقط /tmp قابل نوشتن است. برای حل این مشکل، می توانید متغیر محیطی npm_config_cache در فایل app.yaml برنامه خود (فایل مانیفست) روی دایرکتوری در /tmp تنظیم کنید. به عنوان مثال:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

برنامه خود را بدون NPM اجرا کنید

به طور پیش فرض، Hosted Target از npm start برای اجرای برنامه Hosted Target شما استفاده می کند. اما در کار قبلی مشکل استفاده از NPM را مورد بحث قرار دادیم زیرا نسخه‌های جدیدتر سعی می‌کنند از /root/.npm برای کش NPM استفاده کنند، که غیرقابل نوشتن است و منجر به شروع نشدن Hosted Target شما می‌شود. در حالی که کار قبلی روی این مشکل کار خواهد کرد، گزینه دیگر اجرای برنامه خود بدون NPM است. برای انجام این کار، می توانید از command و مقادیر args در فایل app.yaml برنامه خود (فایل مانیفست) استفاده کنید تا Hosted Target خود را مستقیماً با استفاده از node index.js اجرا کنید. به عنوان مثال:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
البته، می‌توانید از هر دستوری که مناسب می‌دانید استفاده کنید و node index.js فقط یک مثال است.