استخدام Docker لـ Edge Microgateway

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

يوضّح هذا الموضوع كيفية تشغيل 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 المطلوبة لإجراء طلبات وكيل واجهة برمجة التطبيقات المصادق عليها. تشمل هذه الكيانات وكيلاً متوافقًا مع Edge Microgateway، ومنتج API، ومطوّرًا، وتطبيقًا خاصًا بالمطوّر. للحصول على تعليمات كاملة، يُرجى الاطّلاع على إنشاء كيانات على Apigee Edge.

تشغيل Edge Micro كحاوية Docker

  1. نزِّل صورة Docker لـ Edge Microgateway:

    docker pull gcr.io/apigee-microgateway/edgemicro:latest
  2. قبل الانتقال إلى الخطوات التالية، تأكَّد من تنفيذ جميع الخطوات الواردة في قسم المتطلبات الأساسية.

  3. نفِّذ الأمر التالي لترميز ملف إعداد Edge Microgateway بتنسيق base64 الموجود في $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:

    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، عليك إتاحة المنفذ 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 المسموح بها في الحاوية. يمكنك الاطّلاع على امتياز وقت التشغيل وإمكانات Linux في مستندات 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
    

اختبار طلب بيانات من واجهة برمجة التطبيقات

بعد بدء Edge Microgateway في الحاوية، يمكنك إجراء طلبات إلى واجهة برمجة التطبيقات. على سبيل المثال، إذا كان المسار الأساسي لواجهة برمجة التطبيقات هو /hello:

http://localhost:8000/hello

مثال على الناتج:

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

إذا ظهرت لك هذه الاستجابة، يعني ذلك أنّ Edge Microgateway تعاملت بنجاح مع طلب البيانات من واجهة برمجة التطبيقات. ومع ذلك، يتطلب Edge Microgateway مفتاح واجهة برمجة تطبيقات للمصادقة بشكلٍ تلقائي. في القسم التالي، ستختبر واجهة برمجة التطبيقات باستخدام مفتاح صالح لواجهة برمجة التطبيقات.

اختبار واجهة برمجة تطبيقات باستخدام مفتاح صالح

في واجهة مستخدم Edge، انتقِل إلى تطبيق المطوّر الذي أنشأته سابقًا. في صفحة "تطبيق المطوّر"، اعرض "مفتاح المستهلك" وانسَخه. هذه القيمة هي مفتاح واجهة برمجة التطبيقات. ستستخدم هذا المفتاح لإجراء طلبات مصادقة إلى واجهة برمجة التطبيقات.

يمكنك طلب بيانات من واجهة برمجة التطبيقات باستخدام العنوان x-api-key على النحو التالي. قيمة Consumer Key التي نسختها من تطبيق المطوّر هي مفتاح واجهة برمجة التطبيقات. بشكلٍ تلقائي، يتوقّع 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"

إذا أردت معرفة المزيد حول إجراء طلبات بيانات مصادَق عليها من واجهة برمجة التطبيقات من خلال Edge Microgateway باستخدام مفاتيح واجهة برمجة التطبيقات ورموز OAuth المميزة، يُرجى الاطّلاع على الجزء 4: تأمين 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

إذا كنت تستخدم مرجع تصديق لا يوثق به Node.js تلقائيًا (كما هو الحال مع شهادة موقعة ذاتيًا)، ننصحك باستخدام المَعلمة NODE_EXTRA_CA_CERTS عند تشغيل الحاوية.

اضبط هذه المَعلمة على مسار ملف يحتوي على شهادة واحدة أو أكثر موثوق بها بتنسيق PEM. لمعرفة كيفية استخدام هذه المَعلمة، يمكنك الاطّلاع على الأمثلة كيفية ضبط بروتوكول أمان طبقة النقل (TLS) في اتجاه الشمال وكيفية ضبط بروتوكول أمان طبقة النقل (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

راجِع أيضًا تشغيل 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:

    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. تتيح طبقة النقل الآمنة (TLS) المتجهة إلى الشمال للعملاء استخدام HTTPS عند إجراء طلبات إلى واجهة برمجة التطبيقات في 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 باستخدام base64 الموجود في $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.

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. لاحظ المَعلمات التالية المستخدَمة في الأمر، وهي تختلف عن الأمر الأساسي الموضّح في تشغيل Edge Micro كحاوية Docker.

    • تم ضبط port على 8443.
    • يتم استخدام عملية ربط وحدة تخزين لربط ملفات المفتاح والشهادة.
    • يُستخدَم المتغيّر NODE_EXTRA_CA_CERTS لإضافة مرجع تصديق مخصّص (حسب الحاجة في حالة الشهادات الموقّعة ذاتيًا).

5- اختبار إعدادات بروتوكول أمان طبقة النقل (TLS)

  1. نفِّذ أمر cURL التالي لاختبار عملية الإعداد. استبدِل basepath ومفتاح واجهة برمجة التطبيقات في الأمر. يفترض المثال التالي أنّك في الدليل الذي يقع فيه rootca.pem وأنّ الوكيل الذي أنشأته يتضمّن basepath /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:

    docker build -t helloworld . 
    
  11. ابدأ تشغيل نموذج التطبيق:

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

3- إنشاء عناصر في Apigee Edge

  1. أنشئ خادمًا وكيلاً متوافقًا مع Edge Microgateway باستخدام هذه الإعدادات. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء خادم وكيل لواجهة برمجة التطبيقات متوافق مع Edge Microgateway على Edge.

    • اسم الخادم الوكيل: edgemicro_local
    • المراجعة: 1
    • مسار القاعدة: /local
    • القيمة المُستهدفة: https://helloworld:9443
  2. أنشئ منتجًا من منتجات واجهة برمجة التطبيقات. لمعرفة التفاصيل، يُرجى الاطّلاع على إنشاء منتج.

  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 التالي لاختبار عملية الإعداد. استبدِل مسار basepath الذي استخدمته في الخادم الوكيل المتوافق مع microgateway ومفتاح واجهة برمجة التطبيقات الذي حصلت عليه من تطبيق المطوّر الذي أنشأته على 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 التالي. استبدِل مسار basepath ومفتاح واجهة برمجة التطبيقات كما كان من قبل. على سبيل المثال:

    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 العادي. إذا لم يكن الأمر كذلك، يُرجى الاطّلاع على تطوير مكوّنات إضافية مخصّصة.

الخيار (أ): ربط دليل الإضافات بوحدة تخزين

(تمت إضافته في الإصدار 2.5.27) تتشابه خطوات إضافة المكوّنات الإضافية من خلال عملية ربط وحدة تخزين مع الخطوات المطلوبة لإضافة أي مكوّن إضافي مخصّص إلى 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 للحاوية:

    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. اتّصِل بواجهة برمجة التطبيقات لاختبار المكوّن الإضافي.

لمزيد من المعلومات، يُرجى الاطّلاع على VOLUME [shared filesystems].

الخيار (ب): إنشاء المكوّنات الإضافية في الحاوية

في هذا الخيار، يمكنك إنشاء المكوّنات الإضافية في الحاوية.

1. تجميع المكوّنات الإضافية

  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/

2. إنشاء صورة 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. أنشئ صورة Docker جديدة لـ Edge Microgateway تتضمّن المكوّنات الإضافية:

    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 بتنسيق base64 الموجود في $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. اتّصِل بواجهة برمجة التطبيقات لاختبار المكوّن الإضافي:

    اختبِر تنفيذ رمز المكوّن الإضافي من خلال استدعاء واجهة برمجة التطبيقات والتأكّد من أنّ الناتج هو كما هو متوقّع:

    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!