استفاده از 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

    برای جزئیات بیشتر درباره پیکربندی، بخش ۱: پیکربندی 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، توسعه‌دهنده، و برنامه توسعه‌دهنده می‌شود. برای دستورالعمل‌های کامل، ایجاد نهادها در Apigee Edge را ببینید.

اجرای Edge Micro به‌عنوان محتوی Docker

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

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

  3. فرمان زیر را اجرا کنید تا فایل پیکربندی 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 استفاده کند، درصورت نصب کردن دایرکتوری فایل گزارش، باید درگاه 8443 را نمایان کنید. همچنین VOLUME [shared filesystems] را ببینید. همچنین استفاده از 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 (اختیاری) اگر از «مرجع گواهی» استفاده می‌کنید که به‌طور پیش‌فرض مورد اعتماد Node.js نیست، از این پارامتر استفاده کنید. مقدار این پارامتر را روی مسیر فایلی تنظیم کنید که حاوی یک یا چند گواهینامه مطمئن در قالب PEM است. برای جزئیات، گواهینامه‌های TLS را ببینید.
    --security-opt (اختیاری) گزینه‌های امنیتی Docker موردنظر را تنظیم می‌کند. پیکربندی امنیتی را در مستندات Docker ببینید.
    --cap-drop (اختیاری) محدودیت‌هایی را برای قابلیت‌های Linux مجاز در محتوی تنظیم می‌کند. در مستندات Docker، امتیاز زمان اجرا و قابلیت‌های Linux را ببینید.

    برای مثال:

    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
    

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

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

http://localhost:8000/hello

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

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

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

میانای برنامه‌سازی کاربردی را با کلید میانای برنامه‌سازی کاربردی معتبر آزمایش کنید

در «میانای کاربری Edge»، به «برنامه توسعه‌دهندگان» که قبلاً ایجاد کرده‌اید پیمایش کنید. در صفحه «برنامه توسعه‌دهنده»، «کلید مصرف‌کننده» را نشان دهید و آن را کپی کنید. این مقدار کلید میانای برنامه‌سازی کاربردی است. از این کلید برای انجام تماس‌های 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 بیشتر بدانید، بخش ۴: ایمن‌سازی Edge Microgateway را ببینید.

درحال توقف Edge Microgateway

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

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
...

استفاده از «مرجع گواهی» که Node.js به آن اعتماد ندارد

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

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

برای مثال:

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

  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:

    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 ورودی (شمالی) را در سرور Edge Microgateway راه‌اندازی کنید. «امنیت لایه انتقال» شمالی به مشتریان اجازه می‌دهد هنگام فراخوانی «میانای برنامه‌سازی کاربردی» در «ریزدروازه Edge» از 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. بیت زیر را به 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 را اجرا کرده باشید و کلید و رمزی دریافت کرده باشید.

۲. تولید گواهینامه‌های خودامضاشده

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

۳. ویرایش فایل پیکربندی 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`

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

۴. اجرای محتوی

  1. برای اجرای محتوی Docker با 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. به پارامترهای زیر که در این فرمان استفاده شده است توجه کنید؛ این پارامترها با فرمان پایه شرح‌داده‌شده در اجرای Edge Micro به‌عنوان ظرف Docker متفاوت است.

    • ‫port روی 8443 تنظیم شده است.
    • از یک نصب حجم برای نصب فایل‌های کلید و گواهینامه استفاده می‌شود.
    • از متغیر NODE_EXTRA_CA_CERTS برای افزودن «مرجع گواهینامه» سفارشی (درصورت نیاز در مورد گواهینامه‌های خودامضا) استفاده می‌شود.

۵. پیکربندی «امنیت لایه انتقال» را آزمایش کنید

  1. برای آزمایش راه‌اندازی، فرمان cURL زیر را اجرا کنید. مسیر پایه و کلید میانای برنامه‌سازی کاربردی خود را در فرمان جایگزین کنید. مثال زیر فرض می‌کند که شما در دایرکتوری‌ای هستید که 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 خروجی بین سرور Edge Microgateway و برنامه هدف زیرینه را راه‌اندازی کنید. مثال زیر از گواهینامه‌های خودامضا استفاده می‌کند.

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

  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

    برای جزئیات بیشتر درباره پیکربندی، بخش ۱: پیکربندی 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:

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

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

۳. ایجاد نهادها در Apigee Edge

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

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

  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. فرمان زیر را اجرا کنید تا فایل پیکربندی 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، فرمان زیر را اجرا کنید.

    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
    

۵. پیکربندی «امنیت لایه انتقال» را آزمایش کنید

  1. برای آزمایش راه‌اندازی، فرمان cURL زیر را اجرا کنید. مسیر پایه را که در پراکسی آگاه از میکرو دروازه استفاده کرده‌اید و کلید 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 زیر را اجرا کنید. همانند قبل، مسیر پایه و کلید میانای برنامه‌سازی کاربردی را جایگزین کنید. برای مثال:

    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
    

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

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

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

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

گزینه A: نصب دایرکتوری افزایه‌ها روی حجم

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

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

  1. توقف Edge Microgateway:

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

    $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. محتوی Docker را با فرمانی مشابه فرمان زیر اجرا کنید، در این فرمان از گزینه -v برای نصب کردن پوشه افزایه‌ها در حجم Docker استفاده می‌کنید. در فرمان مثال زیر، فهرست راهنمای افزایه‌ها $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 [shared filesystems] را ببینید.

گزینه ب: ساختن افزایه‌ها در محتوی

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

۱. بسته‌بندی افزایه‌ها

  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/

۲. ساختن تصویر Docker

سپس، یک Dockerfile ایجاد کنید تا کد افزایه خود را به تصویر Edge Microgateway اضافه کنید.

  1. در همان دایرکتوری که فایل zip قرار دارد، فایل جدیدی به‌نام 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. فرمان زیر را اجرا کنید تا فایل پیکربندی 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!