مرجع «هدف‌های میزبانی‌شده»

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

محدودیت‌های متغیر محیط

«هدف‌های میزبانی‌شده» اندازه و تعداد متغیرهای محیطی را که می‌توانید در محیط زمان اجرای «هدف‌های میزبانی‌شده» تنظیم کنید محدود می‌کند.

  • ‫۱۰۰۰: حداکثر طول متغیر محیطی واحد.
  • ‫۱۰۰: حداکثر تعداد متغیرهای محیطی که می‌توانید تنظیم کنید.

برای کسب اطلاعات درباره تنظیم متغیرهای محیطی، به فایل مانیفست مراجعه کنید.

متغیرهای محیطی تنظیم‌شده در زمان اجرای برنامه

وقتی برنامه «هدف‌های میزبانی‌شده» را مستقر می‌کنید، متغیرهای محیطی زیر تنظیم می‌شوند و در زمان اجرا برای برنامه‌تان دردسترس هستند:

  • APIGEE_ENVIRONMENT - محیطی که پراکسی «هدف میزبانی‌شده» در آن مستقر شده است.
  • ‫APIGEE_ORGANIZATION - سازمانی که پراکسی «هدف میزبانی‌شده» در آن مستقر شده است.
  • PORT - درگاهی که برنامه «هدف میزبانی‌شده» باید به آن گوش دهد.

تخصیص منبع سیستم

هر نمونه «هدف‌های میزبانی‌شده» منابع زیر را دریافت می‌کند:

  • ‫۲۵۶ مگابایت حافظه
  • واحد پردازش مرکزی ۱٫۲ گیگاهرتز

مقیاس‌گذاری

این بخش توضیح می‌دهد که برنامه‌های «هدف‌های میزبانی‌شده» بسته به نوع حساب Edge شما چگونه مقیاس‌بندی می‌شوند.
  • نسخه آزمایشی Apigee Edge به یک نمونه «هدف‌های میزبانی‌شده» در هر پراکسی محدود است.
  • حساب‌های پولی Apigee Edge براساس نرخ درخواست، تأخیرهای پاسخ، و سنجه‌های دیگر برنامه به‌ازای هر پراکسی، مقیاس‌بندی خودکار دریافت می‌کنند.
  • برنامه‌های «هدف‌های میزبانی‌شده» که در نسخه‌های پولی و آزمایشی Apigee Edge مستقر شده‌اند در دوره‌های عدم فعالیت به صفر می‌رسند. در این حالت، ممکن است متوجه زمان پاسخ‌دهی کندتر برای یک دوره کوتاه شوید. همچنین ببینید مشکلات شناخته‌شده

فایل مانیفست

برای جمع‌آوری اطلاعات زمان اجرا برای ساختن و استقرار برنامه میزبانی‌شده، Edge به‌دنبال فایل مانیفستی به‌نام app.yaml در دایرکتوری resources/hosted می‌گردد. این فایل حاوی اطلاعات لازم برای ساختن و استقرار برنامه «هدف‌های میزبانی‌شده» است.

نحو فایل مانیفست

runtime: node
runtimeVersion: version_number
command: command_name
args: argument_array
env:
  - name: variable_name
    value: literal_value
  - name: variable_name
    valueRef:
      name: kvm_name
      key: kvm_value

عناصر فایل مانیفست

فایل مانیفست app.yaml شامل این عناصر است:

  • زمان اجرا - (الزامی) نوع برنامه‌ای را که مستقر می‌کنید مشخص می‌کند. باید node را مشخص کنید.
  • runtimeVersion - (اختیاری) نسخه زمان اجرایی که برنامه شما استفاده می‌کند. پیش‌فرض: Node.js LTS (نسخه ۱۰.x). برای گزینه‌های دیگر، به مخزن رسمی Docker برای Node مراجعه کنید.
  • فرمان - (اختیاری) به شما امکان می‌دهد فرمان دیگری را برای اجرا مشخص کنید به‌جز فرمان پیش‌فرضی که برای شروع برنامه استفاده می‌شود. پیش‌فرض: Node.js=npm
  • args - (اختیاری) آرایه آرگومان‌های خط فرمان برای ارسال به برنامه (مشخص‌شده در نحو آرایه استاندارد YAML). معمولاً این موارد به فرمان پیش‌فرض اضافه می‌شوند. پیش‌فرض شروع است. برای مثال، به‌طور پیش‌فرض فرمان npm start به برنامه Node.js ارسال خواهد شد.
  • env - (اختیاری) آرایه‌ای از متغیرهای محیطی (جفت‌های نام/مقدار) برای تنظیم در محیط زمان اجرای «هدف‌های میزبانی‌شده». این متغیرها برای برنامه «هدف‌های میزبانی‌شده» استقراریافته شما دردسترس است.
    • name - نام متغیر.
    • value | valueRef - دو گزینه دارید. می‌توانید مقدار واقعی تنظیم کنید یا به مقدار ذخیره‌شده در نقشه مقدار کلید ارجاع دهید. «نقشه مقدار کلید» باید ازقبل در محیط Edge شما وجود داشته باشد. به کار کردن با «نقشه‌های مقدار کلید» مراجعه کنید
      • اگر از مقدار استفاده می‌کنید، باید متغیر name و حرف value را مشخص کنید. برای مثال:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • اگر از valueRef استفاده می‌کنید، باید نام نقشه مقدار کلید (KVM) را که قبلاً در Edge ایجاد کرده‌اید و کلید را ارائه دهید. برای مثال:
        runtime: node
        env:
          - name: DB_ENV
            value: production
          - name: DB_PASSWORD
            valueRef:
              name: hosted-kvm
              key: db-password

    فایل‌های مانیفست نمونه

    این بخش حاوی فایل‌های مانیفست نمونه برای برنامه‌های Node.js است. برای استقرار برنامه «هدف‌های میزبانی‌شده»، فایل مانیفست لازم است و باید در دایرکتوری apiproxy/resources/hosted قرار داشته باشد و نام فایل باید app.yaml باشد.

    در زیر نمونه‌هایی از فایل‌های app.yaml (مانیفست) برای برنامه‌های Node.js آورده شده است.

    مثالی که متغیر محیطی حرفی را مشخص می‌کند:

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

    مثالی با فرمان شروع، آرگومان‌های خط فرمان، و متغیر محیطی.

     runtime: node
     command: ./node_modules/pm2/bin/pm2
     env:
       - name: NODE_ENV
         value: production
     args:
       - app.js


    مثالی که مرجع «نقشه مقدار کلید» (KVM) را مشخص می‌کند:

    برای کسب اطلاعات بیشتر درباره دسترسی KVM، به فایل مانیفست مراجعه کنید.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    برنامه‌های نمونه «هدف‌های میزبانی‌شده» در GitHub

    ‫Apigee پراکسی‌های نمونه‌ای را در GitHub با برنامه‌های «هدف‌های میزبانی‌شده» که با Node.js نوشته شده‌اند ارائه می‌دهد. می‌توانید این مخزن را شبیه‌سازی کنید و دستورالعمل‌های README را برای استقرار هریک از پراکسی‌ها دنبال کنید.

    پیش‌نیازها

    برای استقرار نمونه‌ها، باید دو ابزار در سیستم خود نصب داشته باشید:

    • apigeetool -- ابزار خط فرمان برای استقرار پراکسی‌های Edge.
    • get_token - ابزار خط فرمان برای دریافت نمودار اصالت‌سنجی موردنیاز apigeetool.

    اگر می‌خواهید نمونه‌ها را به‌صورت محلی آزمایش کنید، باید Node.js را نیز نصب کرده باشید.

    درحال دریافت مخزن نمونه

    1. در مرورگر، به https://github.com/apigee/api-platform-samples بروید.
    2. روی شبیه‌سازی یا بارگیری کلیک کنید و بااستفاده از روش ترجیحی خود، مخزن را به سیستم محلی خود بکشید. روش ترجیحی خود.
    3. به <your install dir>/api-platform-samples/doc-samples/hosted-targets cd کنید
    4. پس‌از بارگیری مخزن، می‌توانید به هریک از دایرکتوری‌های نمونه بروید و دستورالعمل‌های README را برای استقرار یک پراکسی نمونه در Edge دنبال کنید. فرمان استقرار در زیر نشان داده شده است. به‌سادگی پارامترهای نشان‌داده‌شده را با پارامترهای حساب Apigee خود جایگزین کنید:
    5. get_token && apigeetool deployproxy \
        -o YOUR_ORGANIZATION \
        -e YOUR_ENVIRONMENT \
        --json \
        --token "$(< ~/.sso-cli/valid_token.dat)"\
        --api NAME_OF_THE_PROXY \
        --directory .

    مثال: اجرای برنامه نمونه

    همسانه‌سازی مخزن نمونه‌ها

    cd ~/myhome
    git clone https://github.com/apigee/api-platform-samples.git
    cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
    cd node-hosted-hello

    آزمایش کردن برنامه به‌صورت محلی

    برای انجام این آزمایش محلی، باید Node.js را نصب کرده باشید.

     PORT=8081 node apiproxy/resources/hosted/index.js
     curl http://localhost:8081

    برونداد نمونه:

    {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}

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

     get_token && apigeetool deployproxy \
       -o myorg \
       -e test \
       --json \
       --token "$(< ~/.sso-cli/valid_token.dat)"\
       --api node-hosted-hello \
       --directory .

    آزمایش کردن استقرار

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

    curl http://myorg-test.apigee.net/node-hosted-hello

    برونداد نمونه:

    {"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"

    مشکلات شناخته‌شده

    • تأخیرهای شبکه - اکنون که برنامه Node.js دیگر در JVM «پردازشگر پیام» اجرا نمی‌شود، بین «پردازشگر پیام» و استقرار جهش شبکه وجود دارد. البته این کار هزینه دارد اما معیارهای سنجش اولیه نشان می‌دهد که هزینه آن در محدوده معقولی است
    • پاسخ‌های کند میانای برنامه‌سازی کاربردی - زیرساخت اجرای برنامه‌های شما به‌طور خودکار براساس نیاز مقیاس‌بندی می‌شود. این یعنی برنامه شما می‌تواند تا صفر نمونه مقیاس‌بندی کند و اگر این‌طور باشد، درخواست بعدی میانای برنامه کاربردی کمی بیشتر از درخواست‌های معمول میانای برنامه کاربردی طول می‌کشد زیرا زیرساخت درحال راه‌اندازی نمونه(های) موردنیاز برای پردازش درخواست(ها) است.
    • خطای استقرار - اگر هنگام استقرار پراکسی «هدف‌های میزبانی‌شده» خطای استقرار دریافت کردید، پراکسی را دوباره مستقر کنید. در برخی موارد، استقرار می‌تواند زمان‌بندی شود و اگر دوباره مستقر کنید، مشکل خودبه‌خود حل خواهد شد.