استفاده از 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، یک محصول API، یک Developer و یک Developer App است. برای دستورالعمل‌های کامل، به ایجاد موجودیت‌ها در Apigee Edge مراجعه کنید.

Edge Micro را به عنوان یک ظرف Docker اجرا کنید

  1. دانلود تصویر Docker برای Edge Microgateway:

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

  3. دستور زیر را اجرا کنید تا فایل پیکربندی Edge Microgateway که در $HOME/.edgemicro قرار دارد را در base64-encode کنید:

    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 را به عنوان یک ظرف اجرا کنید. این دستور چندین متغیر محیطی را تنظیم می کند که توسط Container Runtime برای راه اندازی Edge Microgateway استفاده می شود:

    chown -R 100:101 ~/.edgemicro/ \
    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 پیکربندی می‌کنید، در صورت مونت کردن فهرست فایل log، باید پورت 8443 را در معرض نمایش قرار دهید. همچنین 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 (اختیاری) گزینه های امنیتی Docker مورد نظر را تنظیم می کند. تنظیمات امنیتی را در مستندات Docker ببینید.
    --cap-drop (اختیاری) محدودیت هایی را برای قابلیت های لینوکس مجاز در کانتینر تعیین می کند. امتیاز Runtime و قابلیت های لینوکس را در مستندات Docker ببینید.

    به عنوان مثال:

    chown -R 100:101 ~/.edgemicro/ \
    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، به برنامه توسعه دهنده ای که قبلا ایجاد کرده اید بروید. در صفحه Developer App، Consumer Key را نشان داده و آن را کپی کنید. این مقدار کلید API است. از این کلید برای برقراری تماس های API احراز هویت شده استفاده خواهید کرد.

API را با هدر x-api-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 اطلاعات بیشتری کسب کنید، قسمت 4: Secure Edge Microgateway را ببینید.

Microgateway توقف لبه

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

docker stop edgemicro

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

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

docker start edgemicro

استفاده از TLS در ظرف Docker

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

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

کانتینر Docker که Edge Microgateway را اجرا می کند دارای یک نقطه اتصال در /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 نیست

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

این پارامتر را روی مسیر یک فایل حاوی یک یا چند گواهی قابل اعتماد در قالب PEM تنظیم کنید. برای مشاهده نحوه استفاده از این پارامتر، به مثال‌های How to configure Northbound TLS و How to configure southbound TLS مراجعه کنید.

به عنوان مثال:

chown -R 100:101 ~/.edgemicro/ \
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

همچنین Run Edge Micro را به عنوان ظرف Docker مشاهده کنید.

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

اگرچه توصیه نمی شود، در برخی موارد ممکن است بخواهید اعتبارسنجی TLS را برای Edge Microgateway که در یک ظرف اجرا می شود غیرفعال کنید. قابلیت غیرفعال کردن TLS به طور پیش فرض در کانتینر Edge Microgateway Docker تعبیه نشده است. برای انجام این کار، باید یک تصویر 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 . به عنوان مثال:

chown -R 100:101 ~/.edgemicro/ \
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 به مشتریان این امکان را می دهد که از HTTPS هنگام برقراری تماس های API با Edge Microgateway استفاده کنند. مثال زیر از گواهینامه های خودامضا استفاده می کند.

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

  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. بند زیر را به openssl.cnf اضافه کنید تا ویژگی های SNI مناسب ایجاد شود:

    [ 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، یک محصول API، یک توسعه دهنده و یک برنامه توسعه دهنده ایجاد کرده باشید. علاوه بر این، باید دستور edgemicro configure را اجرا کرده و یک کلید و مخفی دریافت کرده باشید.

2. گواهی های خودامضا تولید کنید

در مرحله بعد، گواهی ها و کلیدهایی را که برای ایجاد 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 برای نام مشترک استفاده کنید.

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

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

3. فایل پیکربندی 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. دستور زیر را برای کدگذاری فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro در base64 اجرا کنید:

    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`

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

4. ظرف را اجرا کنید

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

    chown -R 100:101 ~/.edgemicro/ \
    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 تنظیم شده است.
    • برای نصب کلید و فایل‌های گواهی از پایه تنظیم صدا استفاده می‌شود.
    • متغیر NODE_EXTRA_CA_CERTS برای افزودن یک CA سفارشی (در صورت نیاز در مورد گواهی‌های خودامضا) استفاده می‌شود.

5. پیکربندی TLS را تست کنید

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

    curl -v https://localhost:8443/hello --cacert rootca.pem \
    -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"
    
  2. خروجی پیچیده cURL هر مرحله از دست دادن TLS را نشان می دهد. اگر پاسخ 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 جنوب (خروجی) بین سرور Edge Microgateway و یک برنامه هدف باطن را توضیح می‌دهد. مثال زیر از گواهینامه های خودامضا استفاده می کند.

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

  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. بند زیر را به openssl.cnf اضافه کنید تا ویژگی های SNI مناسب ایجاد شود:

    [ 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
    

2. یک برنامه هدف 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
    

3. موجودیت ها را در Apigee Edge ایجاد کنید

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

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

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

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

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. دستور زیر را برای کدگذاری فایل پیکربندی Edge Microgateway واقع در $HOME/.edgemicro در base64 اجرا کنید:

    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 اجرا کنید.

    chown -R 100:101 ~/.edgemicro/ \
    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
    

5. پیکربندی TLS را تست کنید

  1. دستور cURL زیر را برای تست تنظیمات اجرا کنید. مسیر پایه ای را که در پروکسی microgateway-aware استفاده کرده اید و کلید API بدست آمده از برنامه Developer که در 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 را اضافه کنید.

    chown -R 100:101 ~/.edgemicro/ \
    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 آشنا هستید. اگر نه، به توسعه افزونه های سفارشی مراجعه کنید.

گزینه A: دایرکتوری پلاگین ها را روی یک جلد قرار دهید

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

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

  1. Stop Edge Microgateway:

    edgemicro stop
    
  2. یک دایرکتوری برای پلاگین های سفارشی خود ایجاد کنید. مثلا ایجاد کنید

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

      plugins:
        dir: $HOME/edgemicro/custom/plugins
        sequence:
          - oauth
          - response-uppercase
      ````
    
  4. افزونه خود را با توجه به دستورالعمل های موجود در Write a simple plugin بنویسید و تست کنید. حتما کد پلاگین خود را در ساختار دایرکتوری مناسب قرار دهید. به عنوان مثال:

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

    chown -R 100:101 ~/.edgemicro/ \
    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 [فایل سیستم‌های مشترک] را ببینید.

گزینه B: افزونه ها را در کانتینر بسازید

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

1. پلاگین های خود را بسته بندی کنید

  1. افزونه خود را با توجه به دستورالعمل های موجود در Write a simple plugin بنویسید و تست کنید.

  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/

2. یک تصویر Docker ایجاد کنید

سپس یک 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 .

3. پیکربندی 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
    

4. میکرو گیت وی را راه اندازی کنید

در نهایت باید میکرو گیت وی را در ظرف راه اندازی کنید.

  1. دستور زیر را اجرا کنید تا فایل پیکربندی Edge Microgateway که در $HOME/.edgemicro قرار دارد را در base64-encode کنید:

    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 را به عنوان یک ظرف اجرا کنید. این دستور چندین متغیر محیطی را تنظیم می کند که توسط Container Runtime برای راه اندازی 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!