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

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

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

Hosted Targets اندازه و تعداد متغیرهای محیطی را که می توانید در محیط زمان اجرا Hosted Targets تنظیم کنید محدود می کند.

  • 1000: حداکثر طول یک متغیر محیطی.
  • 100: حداکثر تعداد متغیرهای محیطی که می توانید تنظیم کنید.

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

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

هنگامی که یک برنامه Hosted Targets را مستقر می کنید، متغیرهای محیطی زیر تنظیم می شوند و در زمان اجرا در دسترس برنامه شما هستند:

  • APIGEE_ENVIRONMENT - محیطی که پراکسی Hosted Target در آن مستقر شده است.
  • APIGEE_ORGANIZATION - سازمانی که پراکسی Hosted Target در آن مستقر شده است.
  • PORT - پورتی که برنامه Hosted Target باید به آن گوش دهد.

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

هر نمونه Hosted Targets منابع زیر را دریافت می کند:

  • 256 مگابایت حافظه
  • سی پی یو 1.2 گیگاهرتز

مقیاس بندی

این بخش، بسته به نوع حساب Edge که دارید، مقیاس برنامه های Hosted Targets را توضیح می دهد.
  • نسخه آزمایشی Apigee Edge به یک نمونه Hosted Targets در هر پراکسی محدود می شود.
  • حساب‌های پولی Apigee Edge بر اساس نرخ درخواست، تأخیر پاسخ و سایر معیارهای برنامه در هر پروکسی مقیاس‌بندی خودکار دریافت می‌کنند.
  • برنامه‌های Hosted Targets در هر دو نسخه پولی و آزمایشی Apigee Edge در مقیاس صفر در دوره‌های عدم فعالیت مستقر می‌شوند. در این مورد، ممکن است برای مدت کوتاهی زمان پاسخ‌دهی کندتر را مشاهده کنید. مسائل شناخته شده را نیز ببینید

فایل مانیفست

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

Manfiest نحو فایل

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 (v10.x). برای سایر گزینه ها به مخزن رسمی Docker برای Node مراجعه کنید.
  • فرمان - (اختیاری) به شما امکان می‌دهد دستوری غیر از دستور پیش‌فرض مورد استفاده برای شروع برنامه خود را برای اجرا تعیین کنید. پیش فرض: Node.js=npm
  • args - (اختیاری) آرایه ای از آرگومان های خط فرمان برای ارسال به برنامه (مشخص شده در نحو آرایه استاندارد YAML). به طور معمول، اینها به دستور پیش فرض اضافه می شوند. پیش فرض شروع است. به عنوان مثال، به طور پیش فرض برنامه Node.js دستور npm start دریافت می کند.
  • env - (اختیاری) آرایه ای از متغیرهای محیطی (جفت نام/مقدار) برای تنظیم در محیط زمان اجرا Hosted Targets. این متغیرها برای برنامه Hosted Targets مستقر شما در دسترس هستند.
    • name - نام متغیر.
    • ارزش | valueRef - شما دو گزینه دارید. می توانید یک مقدار تحت اللفظی تنظیم کنید یا به یک مقدار ذخیره شده در یک نقشه ارزش کلیدی اشاره کنید. نقشه Key Value باید از قبل در محیط 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 است. یک فایل مانیفست برای استقرار یک برنامه Hosted Targets مورد نیاز است و باید در فهرست 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، به فایل Manifest مراجعه کنید.

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

    نمونه برنامه های Hosted Targets در GitHub

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

    پیش نیازها

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

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

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

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

    1. در یک مرورگر، به https://github.com/apigee/api-platform-samples بروید.
    2. روی Clone کلیک کنید یا بارگیری کنید و مخزن را با استفاده از روش دلخواه خود به سیستم محلی خود بکشید.
    3. سی دی به <دریچه نصب شما>/api-platform-samples/doc-samples/hosted-targets
    4. هنگامی که مخزن بارگیری شد، می توانید به هر یک از دایرکتوری های نمونه سی دی بزنید و دستورالعمل های README را دنبال کنید تا یک نمونه پراکسی را در Edge مستقر کنید. دستور deploy در زیر نشان داده شده است. به سادگی پارامترهای مشخص شده را با پارامترهایی برای حساب 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 .

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

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

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

    خروجی نمونه:

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

    مسائل شناخته شده

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