استفاده از Docker برای Edge Microgateway

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

این مبحث نحوه اجرای Edge Microgateway را در یک کانتینر Docker توضیح می‌دهد. مراحل پوشش داده شده در این مبحث، درک اولیه‌ای از Docker، دستورات Docker و راه‌اندازی و پیکربندی Edge Microgateway را در نظر می‌گیرد. برای اطلاعات بیشتر، به مستندات Docker و Edge Microgateway مراجعه کنید.

پیش‌نیازها

قبل از اجرای Edge Microgateway در یک کانتینر Docker، باید کارهای زیر را انجام دهید:

  • پیکربندی Edge Microgateway برای سازمان/محیط Apigee شما:

    edgemicro configure -o your_org -e your_env -u your_username

    برای جزئیات بیشتر در مورد پیکربندی، به بخش 1: پیکربندی Edge Microgateway مراجعه کنید.

  • پس از انجام مراحل پیکربندی، فایل پیکربندی را پیدا کنید. مکان پیش‌فرض اینجا است:

    $HOME/.edgemicro/your_org-your_env-config.yaml

    که در آن your_org و your_env سازمان و محیطی هستند که هنگام اجرای دستور edgemicro config از آنها استفاده کرده‌اید. هنگام شروع Edge Microgateway در یک کانتینر Docker به این فایل نیاز خواهید داشت.

  • مطمئن شوید که کلید و اطلاعات محرمانه‌ای که هنگام اجرای دستور edgemicro config برگردانده شده‌اند را دارید. برای مثال:

    The following credentials are required to start edge micro
      key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
      secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    
  • قبل از اینکه Edge Microgateway را در یک کانتینر Docker شروع کنید، باید موجودیت‌های Apigee Edge را که برای برقراری تماس‌های پروکسی API احراز هویت شده مورد نیاز هستند، ایجاد کنید (یا ایجاد کرده باشید). این موجودیت‌ها شامل یک پروکسی Edge Microgateway-aware، یک محصول API، یک Developer و یک Developer App هستند. برای دستورالعمل‌های کامل، به Create entitys on Apigee Edge مراجعه کنید.

اجرای Edge Micro به عنوان یک کانتینر Docker

  1. دانلود ایمیج داکر برای Edge Microgateway:

    docker pull gcr.io/apigee-microgateway/edgemicro:latest
  2. قبل از اینکه به مراحل بعدی بروید، مطمئن شوید که تمام مراحل موجود در بخش پیش‌نیازها را انجام داده‌اید.

  3. دستور زیر را برای رمزگذاری base64 فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro اجرا کنید:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

    که در آن your_org و your_env سازمان و محیطی هستند که هنگام اجرای دستور edgemicro config از آنها استفاده کرده‌اید.

    به یاد داشته باشید که دور دستور علامت (`) بگذارید. برای مثال:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
  4. Edge Microgateway را به عنوان یک کانتینر اجرا کنید. این دستور چندین متغیر محیطی را تنظیم می‌کند که توسط کانتینر در زمان اجرا برای شروع Edge Microgateway استفاده می‌شوند:

    docker run -P -p 8000:8000 -d --name edgemicro \
    -v /var/tmp:/opt/apigee/logs \
    -e EDGEMICRO_PROCESSES=1 \
    -e EDGEMICRO_ORG=your_org \
    -e EDGEMICRO_ENV=your_env \
    -e EDGEMICRO_KEY=your_key \
    -e EDGEMICRO_SECRET=your_secret \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e SERVICE_NAME=edgemicro \
    --security-opt=no-new-privileges \
    --cap-drop=ALL \
    gcr.io/apigee-microgateway/edgemicro:latest

    پارامترها

    پارامتر توضیحات
    -P تمام پورت‌های در معرض دید را در میزبان منتشر کنید. همچنین به مرجع اجرای Docker مراجعه کنید.
    -p به طور صریح یک پورت یا طیف وسیعی از پورت‌ها را نگاشت کنید. همچنین به مرجع اجرای Docker مراجعه کنید.
    -d در حالت جدا اجرا کنید. همچنین به مرجع اجرای Docker مراجعه کنید.
    -v, --volume یک پارتیشن را مشخص می‌کند. توجه داشته باشید که اگر Edge Microgateway را طوری پیکربندی کنید که از TLS در کانتینر Docker استفاده کند، هنگام نصب دایرکتوری فایل لاگ باید پورت ۸۴۴۳ را در معرض دید قرار دهید. همچنین به VOLUME [سیستم‌های فایل مشترک] مراجعه کنید. همچنین به استفاده از TLS در کانتینر Docker مراجعه کنید.
    EDGEMICRO_ORG نام سازمان Apigee که برای پیکربندی Edge Microgateway از آن استفاده کرده‌اید.
    EDGEMICRO_ENV نام محیط Apigee که برای پیکربندی Edge Microgateway استفاده کرده‌اید.
    EDGEMICRO_PROCESSES تعداد فرآیندهایی که باید شروع شوند.
    EDGEMICRO_KEY کلید هنگام پیکربندی Edge Microgateway بازگردانده شد.
    EDGEMICRO_SECRET این راز وقتی که Edge Microgateway را پیکربندی کردید، برگشت.
    EDGEMICRO_CONFIG متغیری حاوی فایل پیکربندی Edge Microgateway کدگذاری شده با base64.
    SERVICE_NAME اگر از Kubernetes استفاده می‌کنید، این پارامتر به صورت خودکار پر می‌شود. در غیر این صورت، می‌توانید آن را روی هر چیزی که می‌خواهید تنظیم کنید. اگر چیزی مشخص نکنید، نام سرویس به default تنظیم می‌شود.
    DEBUG برای فعال کردن اشکال‌زدایی، روی * تنظیم کنید.
    HTTP_PROXY HTTPS_PROXY زمانی استفاده می‌شود که Edge Microgateway پشت یک فایروال در حال اجرا است و دروازه نمی‌تواند با Apigee Edge ارتباط برقرار کند. برای اطلاعات بیشتر، به راه‌اندازی Edge Microgateway پشت یک فایروال شرکت مراجعه کنید.

    برای مثال: HTTP_PROXY=http://10.203.0.1:5187/

    NO_PROXY فهرستی از دامنه‌هایی که Edge Microgateway نباید به آنها پروکسی بدهد، با کاما از هم جدا شده است. برای اطلاعات بیشتر، به «راه‌اندازی Edge Microgateway پشت فایروال شرکت» مراجعه کنید.

    برای مثال: localhost,127.0.0.1,localaddress,.localdomain.com

    NODE_EXTRA_CA_CERTS (اختیاری) اگر از CA استفاده می‌کنید که به طور پیش‌فرض توسط Node.js قابل اعتماد نیست، از این پارامتر استفاده کنید. مقدار این پارامتر را برابر با مسیر فایلی که حاوی یک یا چند گواهی معتبر با فرمت PEM است، تنظیم کنید. برای جزئیات بیشتر، به گواهی‌های TLS مراجعه کنید.
    --security-opt (اختیاری) گزینه‌های امنیتی مورد نظر داکر را تنظیم می‌کند. به پیکربندی امنیتی در مستندات داکر مراجعه کنید.
    --cap-drop (اختیاری) محدودیت‌هایی را برای قابلیت‌های لینوکس مجاز در کانتینر تعیین می‌کند. به بخش امتیاز زمان اجرا و قابلیت‌های لینوکس در مستندات داکر مراجعه کنید.

    برای مثال:

    docker run -P -p 8000:8000 -d --name edgemicro \
    -v /var/tmp:/opt/apigee/logs \
    -e EDGEMICRO_PROCESS=1 \
    -e EDGEMICRO_ORG=docs \
    -e EDGEMICRO_ENV=test \
    -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0 \
    -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430 \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e SERVICE_NAME=edgemicro \
    --security-opt=no-new-privileges \
    --cap-drop=ALL \
    gcr.io/apigee-microgateway/edgemicro
  5. برای بررسی اینکه کانتینر در حال اجرا است:

    docker ps

    شما باید خروجی مشابه زیر را ببینید:

    CONTAINER ID    IMAGE         COMMAND                CREATED          STATUS          PORTS                                             NAMES
    8b92e082ea9c    edgemicro    "/tmp/entrypoint.sh"   12 minutes ago   Up 12 minutes    0.0.0.0:8000->8000/tcp, 0.0.0.0:32775->8443/tcp    edgemicro
    

تست یک فراخوانی API

بعد از اینکه Edge Microgateway را در کانتینر شروع کردید، می‌توانید فراخوانی‌های API را به آن انجام دهید. برای مثال، اگر مسیر پایه API شما /hello باشد:

http://localhost:8000/hello

خروجی نمونه:

{"error":"missing_authorization","error_description":"Missing Authorization header"}

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

تست یک API با یک کلید API معتبر

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

API را با هدر x-api-key به صورت زیر فراخوانی کنید. مقدار Consumer Key که از برنامه توسعه‌دهنده کپی کرده‌اید، کلید API است. به طور پیش‌فرض، Edge Microgateway انتظار دارد که شما کلید را در هدری به نام x-api-key مانند این ارسال کنید:

curl -i http://localhost:8000/hello -H "x-api-key:apikey"

برای مثال:

curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz"

اگر می‌خواهید درباره برقراری تماس‌های API احراز هویت‌شده از طریق Edge Microgateway با کلیدهای API و توکن‌های OAuth بیشتر بدانید، به بخش ۴: Secure Edge Microgateway مراجعه کنید.

متوقف کردن Edge Microgateway

برای متوقف کردن Edge Microgateway از دستور Docker زیر استفاده کنید:

docker stop edgemicro

راه‌اندازی مجدد Edge Microgateway

پس از متوقف کردن Edge Microgateway، می‌توانید آن را با این دستور Docker مجدداً راه‌اندازی کنید:

docker start edgemicro

استفاده از TLS در کانتینر داکر

این بخش نحوه پیکربندی TLS برای Edge Microgateway که در یک کانتینر Docker اجرا می‌شود را توضیح می‌دهد. می‌توانید سرور Edge Microgateway را طوری پیکربندی کنید که از TLS برای درخواست‌های ورودی (جهت شمال) استفاده کند، و می‌توانید Edge Microgateway را طوری پیکربندی کنید که یک کلاینت TLS برای درخواست‌های خروجی به سمت نقاط انتهایی هدف (جهت جنوب) باشد.

محل قرار دادن فایل‌های گواهینامه

کانتینر داکر که Edge Microgateway را اجرا می‌کند، یک نقطه اتصال (mount point) در /opt/apigee/.edgemicro دارد. وقتی Edge Microgateway را برای استفاده از گواهینامه‌های TLS پیکربندی می‌کنید، می‌توانید فایل‌های گواهینامه را در آن نقطه اتصال در دسترس قرار دهید و در فایل پیکربندی Edge Microgateway به آنها ارجاع دهید. این فایل پیکربندی معمولاً در دایرکتوری $HOME/.edgemicro قرار دارد و your_org - your_env -config.yaml نام دارد. به عنوان مثال:

...
edgemicro:
  ssl:
   key: /opt/apigee/.edgemicro/southbound/tls.key
   cert: /opt/apigee/.edgemicro/southbound/tls.crt
...

استفاده از یک CA که توسط Node.js قابل اعتماد نیست

اگر از یک مرجع صدور گواهینامه (CA) استفاده می‌کنید که به طور پیش‌فرض توسط Node.js مورد اعتماد نیست (مانند گواهی خودامضا)، هنگام اجرای کانتینر، استفاده از پارامتر NODE_EXTRA_CA_CERTS را در نظر بگیرید.

این پارامتر را روی مسیر فایلی که حاوی یک یا چند گواهی معتبر با فرمت PEM است تنظیم کنید. برای مشاهده نحوه استفاده از این پارامتر، به مثال‌های «نحوه پیکربندی TLS به سمت شمال» و «نحوه پیکربندی TLS به سمت جنوب» مراجعه کنید.

برای مثال:

docker run -P -p 8443:8443 -d --name edgemicro \
-v $HOME/.edgemicro:/opt/apigee/.edgemicro \
-v $HOME/.edgemicro:/opt/apigee/logs \
-e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
-e EDGEMICRO_PORT=8443 \
-e EDGEMICRO_ORG=docs \
-e EDGEMICRO_ENV=test \
-e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
-e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
-e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
--link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro

همچنین به اجرای Edge Micro به عنوان یک کانتینر Docker مراجعه کنید.

غیرفعال کردن اعتبارسنجی TLS

اگرچه توصیه نمی‌شود، اما در برخی موارد ممکن است بخواهید اعتبارسنجی TLS را برای Edge Microgateway که در یک کانتینر اجرا می‌شود غیرفعال کنید. قابلیت غیرفعال کردن TLS به طور پیش‌فرض در کانتینر Docker Edge Microgateway تعبیه نشده است. برای انجام این کار، باید یک تصویر Docker سفارشی برای Edge Microgateway ایجاد کنید. در زیر دستورالعمل‌های کلی برای ساخت تصویر سفارشی و غیرفعال کردن اعتبارسنجی TLS آمده است.

  1. مخزن منبع Edge Microgateway را از https://github.com/apigee-internal/microgateway کپی یا دانلود کنید.

  2. cd به دایرکتوری microgateway/kubernetes/docker/edgemicro در دایرکتوری کد منبع بروید.

    برای مثال:

    cd $HOME/git/microgateway/kubernetes/docker/edgemicro
    
  3. فایل entrypoint.sh را باز کنید و کد را طوری تغییر دهید که متغیر محیطی NODE_TLS_REJECT_UNAUTHORIZED را بپذیرد. بعداً، هنگام اجرای کانتینر، مقداری برای این متغیر تعیین خواهید کرد.

  4. ساخت کانتینر داکر:

    docker build -t edgemicro .
    
  5. هنگام اجرای کانتینر، گزینه -e NODE_TLS_REJECT_UNAUTHORIZED = 1 را مشخص کنید. برای مثال:

docker run -P -p 8443:8443 -d --name edgemicro \
-v $HOME/.edgemicro:/opt/apigee/.edgemicro \
-v $HOME/.edgemicro:/opt/apigee/logs \
-e NODE_TLS_REJECT_UNAUTHORIZED = 1 \
-e EDGEMICRO_PORT=8443 \
-e EDGEMICRO_ORG=docs \
-e EDGEMICRO_ENV=test \
-e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
-e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
-e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
--link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro

مثال: نحوه پیکربندی TLS به سمت شمال

این بخش نحوه تنظیم اتصال TLS به سمت شمال (ورودی) را در سرور Edge Microgateway توضیح می‌دهد. Northbound TLS به کلاینت‌ها اجازه می‌دهد هنگام برقراری تماس‌های API به Edge Microgateway از HTTPS استفاده کنند. مثال زیر از گواهی‌های خودامضا استفاده می‌کند.

۱. مراحل اولیه راه‌اندازی

  1. فایل openssl.cnf را روی سیستم خود پیدا کنید. برای مثال، /etc/ssl/openssl.cnf .
  2. فایل opensssl.cnf را برای ویرایش باز کنید.
  3. مطمئن شوید که req_extensions در فایل پیکربندی شما وجود دارد. برای مثال، باید اطلاعاتی مشابه موارد زیر در فایل خود داشته باشید:

    [ req ]
    ...
    req_extensions          = v3_req
    ...
    
    [ v3_req ]
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
  4. برای تولید ویژگی‌های SNI مناسب، قطعه کد زیر را به openssl.cnf اضافه کنید:

    [ alt_names ]
    DNS.1 = www.example.com
    DNS.2 = example.com
    DNS.3 = localhost
    DNS.4 = localhost.localdomain
    DNS.5 = 127.0.0.1
    DNS.6 = ::1
    DNS.7 = fe80::1
    

    مثال فایل opensssl.cnf :

    [ req ]
    distinguished_name      = req_distinguished_name
    attributes              = req_attributes
    req_extensions          = v3_req
    
    [ v3_req ]
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    [ req_distinguished_name ]
    countryName                     = Country Name (2 letter code)
    countryName_min                 = 2
    countryName_max                 = 2
    stateOrProvinceName             = State or Province Name (full name)
    localityName                    = Locality Name (eg, city)
    0.organizationName              = Organization Name (eg, company)
    organizationalUnitName          = Organizational Unit Name (eg, section)
    commonName                      = Common Name (eg, fully qualified host name)
    commonName_max                  = 64
    emailAddress                    = Email Address
    emailAddress_max                = 64
    
    [ req_attributes ]
    challengePassword               = A challenge password
    challengePassword_min           = 4
    challengePassword_max           = 20
    
    [ alt_names ]
    DNS.1 = www.example.com
    DNS.2 = example.com
    DNS.3 = localhost
    DNS.4 = localhost.localdomain
    DNS.5 = 127.0.0.1
    DNS.6 = ::1
    DNS.7 = fe80::1
    
  5. اگر قبلاً Edge Microgateway را راه‌اندازی و پیکربندی نکرده‌اید، مراحل ذکر شده در بخش پیش‌نیازها را دنبال کنید. پس از اتمام، باید یک پروکسی Edge Microgateway-aware، یک محصول API، یک Developer و یک Developer App ایجاد کرده باشید. علاوه بر این، باید دستور edgemicro configure اجرا کرده و یک کلید و رمز دریافت کرده باشید.

۲. ایجاد گواهی‌های خودامضا

در مرحله بعد، گواهی‌ها و کلیدهایی را که برای ایجاد TLS نیاز دارید، ایجاد کنید:

  1. با cd به دایرکتوری $HOME/.edgemicro .
  2. اسکریپت bash زیر را ایجاد کنید. می‌توانید هر نامی که می‌خواهید برای آن انتخاب کنید. برای مثال: keygen.sh .

    #!/bin/bash
    # generate ca
    openssl genrsa -out rootca.key 2048
    openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem
    # generate key
    openssl genrsa -out tls.key 2048
    openssl req -new -key tls.key -out tls.csr
    # sign cert
    openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
    
  3. در فایل bash، مطمئن شوید که مسیر فایل openssl.cnf درست است.

  4. فایل bash را اجرا کنید. از شما اطلاعات گواهینامه پرسیده می‌شود. حتماً از localhost برای Common Name استفاده کنید.

  5. بررسی کنید که فایل‌های زیر ایجاد شده باشند:

    • rootca.key
    • rootca.pem
    • tls.key
    • tls.csr
    • rootca.srl
    • tls.crt

۳. فایل پیکربندی Edge Microgateway را ویرایش کنید

  1. فایل پیکربندی Edge Micro را در یک ویرایشگر باز کنید. برای مثال:

    vi $HOME/.edgemicro/myorg-test-config.yaml
    
  2. عبارت edgemicro را به صورت زیر ویرایش کنید. توجه داشته باشید که شما در حال ایجاد تغییرات در ویژگی‌های port و ssl هستید:

    edge_config:
    ...
    edgemicro:
      port: 8443
      max_connections: 1000
      config_change_poll_interval: 600
      ssl:
        key: /opt/apigee/.edgemicro/tls.key
        cert: /opt/apigee/.edgemicro/tls.crt
        passphrase: admin123
        rejectUnauthorized: true
        requestCert: false
      logging:
    ...
    
  3. دستور زیر را برای رمزگذاری base64 فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro اجرا کنید:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

    که در آن your_org و your_env سازمان و محیطی هستند که هنگام اجرای دستور edgemicro config از آنها استفاده کرده‌اید.

    به یاد داشته باشید که دور دستور علامت (`) بگذارید. برای مثال:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`

همچنین به « اجرای Edge Micro به عنوان یک کانتینر Docker» مراجعه کنید.

۴. کانتینر را اجرا کنید

  1. برای اجرای کانتینر داکر با Edge Microgateway، دستور زیر را اجرا کنید:

    docker run -P -p 8443:8443 -d --name edgemicro \
    -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
    -v path_to_your_logs_dir:/opt/apigee/logs \
    -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
    -e EDGEMICRO_PORT=8443 \
    -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
    -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
    -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
    -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    gcr.io/apigee-microgateway/edgemicro:latest
    
  2. به پارامترهای زیر که در دستور استفاده شده‌اند توجه کنید؛ آن‌ها با دستور پایه‌ای که در Run Edge Micro به عنوان یک کانتینر Docker توضیح داده شده است، متفاوت هستند.

    • port روی 8443 تنظیم شده است.
    • از یک volume mount برای mount کردن فایل‌های key و cert استفاده می‌شود.
    • متغیر NODE_EXTRA_CA_CERTS برای افزودن یک CA سفارشی (در صورت نیاز در مورد گواهی‌های خودامضا) استفاده می‌شود.

۵. پیکربندی TLS را آزمایش کنید

  1. برای آزمایش تنظیمات، دستور cURL زیر را اجرا کنید. مسیر پایه و کلید API خود را در دستور جایگزین کنید. مثال زیر فرض می‌کند که شما در دایرکتوری هستید که rootca.pem در آن قرار دارد و پروکسی که ایجاد کرده‌اید دارای مسیر پایه /hello است:

    curl -v https://localhost:8443/hello --cacert rootca.pem \
    -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
    
  2. خروجی cURL به صورت کامل، هر مرحله از TLS handshaking را نشان می‌دهد. اگر پاسخ HTTP 200 را مشاهده کردید، پیکربندی با موفقیت انجام شده است:

    *   Trying ::1...ey:Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
    * TCP_NODELAY set
    * Connected to localhost (::1) port 8443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    *   CAfile: rootca.pem
      CApath: none
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
    * ALPN, server accepted to use http/1.1
    * Server certificate:
    *  subject: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com
    *  start date: Dec 14 22:35:28 2018 GMT
    *  expire date: Oct  3 22:35:28 2021 GMT
    *  common name: localhost (matched)
    *  issuer: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com
    *  SSL certificate verify ok.
    > GET /hello HTTP/1.1
    > Host: localhost:8443
    > User-Agent: curl/7.54.0
    > Accept: */*
    > x-api-key:Az82fdnfaONVCOE4NKhajxAboDA3FAo
    >
    < HTTP/1.1 200 OK
    < x-powered-by: Apigee
    < access-control-allow-origin: *
    < x-frame-options: ALLOW-FROM RESOURCE-URL
    < x-xss-protection: 1
    < x-content-type-options: nosniff
    < content-type: text/plain; charset=utf-8
    < etag: W/"d-GHB1ZrJKk/wdVTdB/jgBsw"
    < date: Fri, 14 Dec 2018 22:43:13 GMT
    < via: 1.1 google
    < alt-svc: clear
    < x-response-time: 1325
    < Connection: keep-alive
    < Transfer-Encoding: chunked
    <
    * Connection #0 to host localhost left intact
    Hello, Guest!
    

مثال: نحوه پیکربندی TLS به سمت جنوب

این بخش نحوه‌ی راه‌اندازی یک اتصال TLS خروجی (Southbound) بین سرور Edge Microgateway و یک برنامه‌ی کاربردی هدف backend را توضیح می‌دهد. مثال زیر از گواهی‌های self-signed استفاده می‌کند.

۱. مراحل اولیه راه‌اندازی

  1. فایل openssl.cnf را روی سیستم خود پیدا کنید. برای مثال، /etc/ssl/openssl.cnf .
  2. فایل opensssl.cnf را برای ویرایش باز کنید.
  3. مطمئن شوید که req_extensions در فایل پیکربندی شما وجود دارد. برای مثال، باید اطلاعاتی مشابه موارد زیر در فایل خود داشته باشید:

    [ req ]
    ...
    req_extensions          = v3_req
    ...
    
    [ v3_req ]
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
  4. برای تولید ویژگی‌های SNI مناسب، قطعه کد زیر را به openssl.cnf اضافه کنید:

    [ alt_names ]
    DNS.1 = helloworld
    DNS.2 = localhost
    DNS.3 = localhost.localdomain
    DNS.4 = 127.0.0.1
    DNS.5 = ::1
    DNS.6 = fe80::1
    

    مثال فایل opensssl.cnf :

    [ req ]
    distinguished_name      = req_distinguished_name
    attributes              = req_attributes
    req_extensions          = v3_req
    
    [ v3_req ]
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    [ req_distinguished_name ]
    countryName                     = Country Name (2 letter code)
    countryName_min                 = 2
    countryName_max                 = 2
    stateOrProvinceName             = State or Province Name (full name)
    localityName                    = Locality Name (eg, city)
    0.organizationName              = Organization Name (eg, company)
    organizationalUnitName          = Organizational Unit Name (eg, section)
    commonName                      = Common Name (eg, fully qualified host name)
    commonName_max                  = 64
    emailAddress                    = Email Address
    emailAddress_max                = 64
    
    [ req_attributes ]
    challengePassword               = A challenge password
    challengePassword_min           = 4
    challengePassword_max           = 20
    
    [ alt_names ]
    DNS.1 = helloworld
    DNS.2 = localhost
    DNS.3 = localhost.localdomain
    DNS.4 = 127.0.0.1
    DNS.5 = ::1
    DNS.6 = fe80::1
    
  5. دستور edgemicro configure را اجرا کنید:

    edgemicro configure -o your_org -e your_env -u your_username

    برای جزئیات بیشتر در مورد پیکربندی، به بخش 1: پیکربندی Edge Microgateway مراجعه کنید.

  6. کلید و اعتبارنامه‌های مخفی که از edgemicro configure برگردانده شده‌اند را کپی کنید. برای اجرای کانتینر به این مقادیر نیاز خواهید داشت. به عنوان مثال:

    The following credentials are required to start edge micro
      key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0
      secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
    

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

  1. با cd به پوشه .edgemicro بروید.

  2. اسکریپت bash زیر را ایجاد کنید. می‌توانید هر نامی که می‌خواهید برای آن انتخاب کنید. برای مثال: keygen.sh .

    #!/bin/bash
    # generate ca
    openssl genrsa -out rootca.key 2048
    openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem
    # generate key
    openssl genrsa -out tls.key 2048
    openssl req -new -key tls.key -out tls.csr
    # sign cert
    openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
    
  3. در فایل bash، مطمئن شوید که مسیر فایل openssl.cnf درست است.

  4. فایل bash را اجرا کنید. از شما اطلاعات گواهینامه پرسیده می‌شود. حتماً از hellworld برای نام عمومی استفاده کنید.

  5. بررسی کنید که فایل‌های زیر ایجاد شده باشند:

    • rootca.key
    • rootca.pem
    • tls.key
    • tls.csr
    • rootca.srl
    • tls.crt
  6. یک فایل جدید به نام server.js ایجاد کنید.

    'use strict';
    
    const express = require('express');
    const https = require('https');
    const fs = require('fs');
    
    const options = {
      key: fs.readFileSync("tls.key"),
      cert: fs.readFileSync("tls.crt")
    };
    
    // Constants
    const PORT = 9443;
    const HOST = '0.0.0.0';
    
    // App
    const app = express();
    app.get('/', (req, res) => {
      res.send('Hello world\n');
    });
    
    https.createServer(options, app).listen(PORT);
    
  7. یک فایل package.json در همان دایرکتوری server.js ایجاد کنید. برای مثال:

    {
      "name": "helloworld",
      "version": "1.0.0",
      "description": "",
      "main": "server.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "express": "^4.16.4",
        "fs": "0.0.1-security",
        "https": "^1.0.0"
      }
    }
    
  8. برای دریافت وابستگی‌ها، npm install اجرا کنید.

  9. یک Dockerfile جدید در همان دایرکتوری server.js ایجاد کنید، که در آن WORKDIR مسیر ریشه برنامه Node.js شما است:

    FROM node:8-alpine
    WORKDIR path-to-your-node-app
    COPY package*.json ./
    
    RUN npm install
    COPY . .
    EXPOSE 9443
    CMD [ "npm", "start" ]
    
  10. ساخت ایمیج داکر:

    docker build -t helloworld . 
    
  11. برنامه نمونه را شروع کنید:

    docker run -P -p 9443:9443 --name helloworld helloworld
    

۳. ایجاد موجودیت‌ها در Apigee Edge

  1. با این تنظیمات، یک پروکسی Edge Microgateway-aware ایجاد کنید. برای اطلاعات بیشتر، به «ایجاد یک پروکسی Edge Microgateway-aware API در Edge» مراجعه کنید.

    • نام پروکسی: edgemicro_local
    • ویرایش: 1
    • مسیر پایه: /local
    • هدف: https://helloworld:9443
  2. یک محصول API ایجاد کنید. برای جزئیات بیشتر، به ایجاد یک محصول مراجعه کنید.

  3. ایجاد یک توسعه‌دهنده. برای جزئیات بیشتر، به ایجاد یک توسعه‌دهنده مراجعه کنید.

  4. یک برنامه توسعه‌دهنده ایجاد کنید. برای جزئیات بیشتر، به «ایجاد یک برنامه توسعه‌دهنده» مراجعه کنید.

۴. کانتینر را اجرا کنید

  1. فایل پیکربندی Edge Micro را در یک ویرایشگر باز کنید. برای مثال:

    vi $HOME/.edgemicro/myorg-test-config.yaml
    
  2. عبارت edgemicro را به صورت زیر ویرایش کنید. توجه داشته باشید که شما در حال ایجاد تغییرات در ویژگی‌های port و ssl هستید:

    edge_config:
    ...
    edgemicro:
      port: 8443
      max_connections: 1000
      config_change_poll_interval: 600
      ssl:
        key: /opt/apigee/.edgemicro/tls.key
        cert: /opt/apigee/.edgemicro/tls.crt
        passphrase: admin123
        rejectUnauthorized: true
        requestCert: false
      logging:
    ...
    
  3. دستور زیر را برای رمزگذاری base64 فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro اجرا کنید:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

    که در آن your_org و your_env سازمان و محیطی هستند که هنگام اجرای دستور edgemicro config از آنها استفاده کرده‌اید.

    به یاد داشته باشید که دور دستور علامت (`) بگذارید. برای مثال:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
  4. دستور زیر را برای شروع Edge Microgateway در کانتینر Docker اجرا کنید.

    docker run -P -p 8443:8443 -d --name edgemicro \
    -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
    -v path_to_your_logs_dir:/opt/apigee/logs \
    -e EDGEMICRO_PORT=8443 \
    -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
    -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
    -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
    -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
    

۵. پیکربندی TLS را آزمایش کنید

  1. برای آزمایش تنظیمات، دستور cURL زیر را اجرا کنید. مسیر پایه‌ای که در پروکسی microgateway-aware استفاده کرده‌اید را با کلید API که از برنامه توسعه‌دهنده‌ای که در Apigee Edge ایجاد کرده‌اید، به دست آورده‌اید، جایگزین کنید. برای مثال:

    curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
    

    شما باید این خطا را ببینید:

    ...
    *  subject: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com
    *  start date: Dec 10 02:12:22 2018 GMT
    *  expire date: Sep 29 02:12:22 2021 GMT
    *  issuer: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com
    *  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
    > GET /local HTTP/1.1
    > Host: localhost:8443
    > User-Agent: curl/7.54.0
    > Accept: */*
    > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd
    >
    < HTTP/1.1 502 Bad Gateway
    < Date: Wed, 12 Dec 2018 05:25:01 GMT
    < Connection: keep-alive
    < Content-Length: 93
    <
    * Connection #0 to host localhost left intact
    {"message":"unable to verify the first certificate","code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}
    
  2. Edge Microgateway را دوباره اجرا کنید، اما این بار متغیر NODE_EXTRA_CA_CERTS را اضافه کنید.

    docker run -P -p 8443:8443 -d --name edgemicro \
    -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \
    -v path_to_your_logs_dir:/opt/apigee/logs \
    -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
    -e EDGEMICRO_PORT=8443 \
    -e EDGEMICRO_ORG=$EDGEMICRO_ORG \
    -e EDGEMICRO_ENV=$EDGEMICRO_ENV \
    -e EDGEMICRO_KEY=$EDGEMICRO_KEY \
    -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
    
  3. دستور cURL زیر را اجرا کنید. مسیر پایه و کلید API خود را مانند قبل جایگزین کنید. برای مثال:

    curl https://localhost:8443/local -k -H "x-api-key: xxxx" -v
    
  4. خروجی را بررسی کنید. در صورت موفقیت، پاسخ وضعیت HTTP 200 را دریافت خواهید کرد:

    ...
    > GET /local HTTP/1.1
    > Host: localhost:8443
    > User-Agent: curl/7.54.0
    > Accept: */*
    > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd
    >
    < HTTP/1.1 200 OK
    < x-powered-by: Express
    < content-type: text/html; charset=utf-8
    < etag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0"
    < date: Wed, 12 Dec 2018 05:49:28 GMT
    < x-response-time: 421
    < Connection: keep-alive
    < Transfer-Encoding: chunked
    <
    Hello world
    

اضافه کردن افزونه سفارشی

شما می‌توانید با نوشتن افزونه‌های سفارشی، ویژگی‌ها و قابلیت‌های جدیدی را به microgateway اضافه کنید. افزونه‌های سفارشی به شما امکان می‌دهند تا به صورت برنامه‌نویسی شده با درخواست‌ها و پاسخ‌هایی که از طریق microgateway جریان می‌یابند، تعامل داشته باشید.

شما دو گزینه برای استقرار افزونه‌ها در یک نمونه Edge Microgateway که در یک کانتینر داکر اجرا می‌شود، دارید:

ادامه‌ی این بخش فرض می‌کند که شما با نوشتن و پیکربندی افزونه‌ها برای راه‌اندازی استاندارد Edge Microgateway آشنا هستید. در غیر این صورت، به بخش «توسعه افزونه‌های سفارشی» مراجعه کنید.

گزینه الف: پوشه افزونه‌ها را روی یک والیوم مانت کنید

(در نسخه ۲.۵.۲۷ اضافه شده است) مراحل افزودن افزونه‌ها از طریق نصب ولوم مشابه مراحل مورد نیاز برای افزودن هر افزونه سفارشی به Edge Microgateway است. وقتی کانتینر Docker را اجرا می‌کنید، می‌توانید دایرکتوری افزونه‌ها را روی سیستم محلی خود (ولوم) در نقطه نصب کانتینر، که /opt/apigee/plugins است، نصب کنید. سپس دایرکتوری ولوم محلی را در فایل پیکربندی Edge Microgateway مشخص می‌کنید.

مراحل زیر نحوه استفاده از یک نقطه اتصال داکر برای افزودن افزونه‌های سفارشی را نشان می‌دهد.

  1. میکروگیت‌وی لبه را متوقف کنید:

    edgemicro stop
    
  2. یک دایرکتوری برای افزونه‌های سفارشی خود ایجاد کنید. برای مثال، create

    $HOME/edgemicro/custom/plugins
    
  3. پوشه افزونه سفارشی را به فایل پیکربندی Edge Microgateway اضافه کنید. برای مثال:

      plugins:
        dir: $HOME/edgemicro/custom/plugins
        sequence:
          - oauth
          - response-uppercase
      ````
    
  4. افزونه خود را طبق دستورالعمل‌های «نوشتن یک افزونه ساده» بنویسید و آزمایش کنید. حتماً کد افزونه خود را در ساختار دایرکتوری مناسب قرار دهید. برای مثال:

    custom
      |
      |-- plugins
        |
        |- response-uppercase
        |     |- index.js
        |     |- package.json
        |- request-headers
        |     | - index.js
              | - package.json
    
  5. کانتینر داکر را با دستوری مشابه دستور زیر اجرا کنید، که در آن از گزینه -v برای مانت کردن دایرکتوری plugins روی ولوم داکر استفاده می‌کنید. در دستور مثال زیر، دایرکتوری plugins $HOME/edgemicro/custom/plugins (جایی که افزونه سفارشی قرار دارد) به نقطه مانت کانتینر /opt/apigee/plugins نگاشت شده است:

    docker run -P -p 8000:8000 -d --name edgemicro \
    -v /var/tmp:/opt/apigee/logs \
    -v $HOME/edgemicro/custom/plugins:/opt/apigee/plugins \
    -e EDGEMICRO_PROCESSES=1 \
    -e EDGEMICRO_ORG=jdoe \
    -e EDGEMICRO_ENV=test \
    -e EDGEMICRO_KEY=39c4b561100cd7f258768d1072f3e1d7c17b5f36a18fe89972bb5c9ce7e58fb \
    -e EDGEMICRO_SECRET=f5f9e239a38b4e6cc99c2aa067716a84aebdcff9580a7925fc500e402b1a5fa \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e SERVICE_NAME=edgemicro \
    --security-opt=no-new-privileges \
    --cap-drop=ALL gcr.io/apigee-microgateway/edgemicro:latest
    
  6. برای آزمایش افزونه، API خود را فراخوانی کنید.

برای اطلاعات بیشتر، به VOLUME [سیستم‌های فایل اشتراکی] مراجعه کنید.

گزینه ب: افزونه‌ها را درون کانتینر قرار دهید

در این گزینه، افزونه‌ها را در کانتینر خود می‌سازید.

۱. افزونه‌های خود را بسته‌بندی کنید

  1. افزونه خود را طبق دستورالعمل‌های موجود در بخش «نوشتن یک افزونه ساده» بنویسید و آزمایش کنید.

  2. کد افزونه خود را در ساختار دایرکتوری مناسب قرار دهید. دایرکتوری‌های افزونه باید از یک ساختار مشخص پیروی کنند. مثال زیر ساختاری را که باید دنبال کنید نشان می‌دهد، که در آن response-uppercase و request-headers نام پوشه‌هایی هستند که حاوی کد افزونه سفارشی هستند (این نام‌ها فقط مثال هستند، نام پوشه‌های شما ممکن است متفاوت باشد):

    plugin
      |
      |-- plugins
        |
        |- response-uppercase
        |     |- index.js
        |     |- package.json
        |- request-headers
        |     | - index.js
              | - package.json
    
  3. cd به پوشه plugin بروید.

  4. در پوشه plugin ، کل پوشه plugins را زیپ کنید:

    zip -r plugins.zip plugins/

۲. ایجاد یک ایمیج داکر

در مرحله بعد، یک Dockerfile ایجاد کنید تا کد افزونه خود را به یک تصویر Edge Microgateway اضافه کنید.

  1. در همان دایرکتوری که فایل زیپ قرار دارد، یک فایل جدید به نام Dockerfile ایجاد کنید.
  2. کد زیر را به Dockerfile اضافه کنید و فایل را ذخیره کنید:

    USER root
    RUN apk update && \
        apk upgrade && \
        apk add zipapk add zip && \
        mkdir /opt/apigee/customplugins && \
        chown apigee:apigee /opt/apigee/customplugins
    COPY plugins.zip /opt/apigee/customplugins
    RUN su - apigee -c "unzip /opt/apigee/customplugins/plugins.zip -d /opt/apigee/customplugins"
    EXPOSE 8000
    EXPOSE 8443
    USER apigee
    ENTRYPOINT ["entrypoint"]
    
  3. با افزونه‌های خود، یک تصویر جدید Edge Microgateway Docker ایجاد کنید:

    docker build -t image-name .

    برای مثال:

    docker build -t edgemicroplugins .

۳. پیکربندی Edge Microgateway را به‌روزرسانی کنید

اکنون که افزونه‌ها بسته‌بندی شده‌اند، باید آنها را به فایل پیکربندی Edge Microgateway اضافه کنید.

  1. فایل پیکربندی Edge Microgateway را در یک ویرایشگر باز کنید:

    $HOME/.edgemicro/org-env-config.yaml
    

    برای مثال:

    vi $HOME/.edgemicro/myorg-test-config.yaml
  2. دایرکتوری افزونه را به فایل پیکربندی اضافه کنید. در مثال زیر، ویژگی dir محل کد افزونه را مشخص می‌کند (که در Dockerfile مشخص کرده‌اید). همچنین باید نام دایرکتوری افزونه را مشخص کنید که در مثال زیر response-uppercase است.

    edgemicro:
      ...
      plugins:
        dir: /opt/apigee/plugins
        sequence:
          - oauth
          - response-uppercase
    

۴. میکروگیت‌وی را شروع کنید

در نهایت، باید میکروگیت‌وی را در کانتینر راه‌اندازی کنید.

  1. دستور زیر را برای رمزگذاری base64 فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro اجرا کنید:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`

    که در آن your_org و your_env سازمان و محیطی هستند که هنگام اجرای دستور edgemicro config از آنها استفاده کرده‌اید.

    به یاد داشته باشید که دور دستور علامت (`) بگذارید. برای مثال:

    export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
  2. Edge Microgateway را به عنوان یک کانتینر اجرا کنید. این دستور چندین متغیر محیطی را تنظیم می‌کند که توسط کانتینر در زمان اجرا برای شروع Edge Microgateway استفاده می‌شوند:

    docker run -P -p 8000:8000 -d --name edgemicroplugins \
    -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \
    -e EDGEMICRO_ORG=your_org \
    -e EDGEMICRO_ENV=your_env \
    -e EDGEMICRO_KEY=your_key \
    -e EDGEMICRO_SECRET=your_secret \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e SERVICE_NAME=edgemicroplugins image_name

    برای مثال:

    docker run -P -p 8000:8000 -d --name edgemicroplugins \
    -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \
    -e EDGEMICRO_ORG=docs \
    -e EDGEMICRO_ENV=test \
    -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0 \
    -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430 \
    -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
    -e SERVICE_NAME=edgemicroplugins edgemicroplugins
  3. برای آزمایش افزونه، API خود را فراخوانی کنید:

    با فراخوانی API خود و تأیید اینکه خروجی مطابق انتظار است، اجرای کد افزونه را آزمایش کنید:

    curl -i http://localhost:8000/hello -H "x-api-key:apikey"

    برای مثال، افزونه‌ی response-uppercase ممکن است پاسخی مانند این برگرداند:

    curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz"
      HELLO, WORLD!