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

    مثال:

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

مثال:

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

راجِع أيضًا تشغيل Edge Micro كحاوية Docker.

إيقاف التحقق من بروتوكول أمان طبقة النقل (TLS)

قد ترغب في بعض الحالات في إيقاف التحقق من بروتوكول أمان طبقة النقل (TLS) مع Edge Microgateway الذي يعمل في حاوية، على الرغم من أنه لا يوصى بذلك. ولا يتم تضمين إمكانية تعطيل بروتوكول أمان طبقة النقل (TLS) بشكل افتراضي في حاوية 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. مثال:

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 عند إجراء اتصالات من واجهة برمجة التطبيقات مع 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. أضف العنوان Stanza التالي إلى 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، ومنتج واجهة برمجة تطبيقات، ومطورًا، وتطبيق مطور. فضلاً عن ذلك، ينبغي أن تكون قد شغلت الأمر 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:

    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:

    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 لإضافة مرجع تصديق مخصّص (حسب الحاجة في حالة الشهادات الموقعة ذاتيًا).

5. اختبار ضبط بروتوكول أمان طبقة النقل (TLS)

  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) ذي الاتجاه الجنوبي

يوضِّح هذا القسم كيفية إعداد اتصال 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. أضف العنوان Stanza التالي إلى 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-aware على 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:

    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
    

5. اختبار ضبط بروتوكول أمان طبقة النقل (TLS)

  1. نفِّذ أمر cURL التالي لاختبار الإعداد. استبدل مسارك الأساسي الذي استخدمته في الخادم الوكيل الواعي للمدخل الصغير ومفتاح واجهة برمجة التطبيقات الذي تم الحصول عليه من تطبيق المطور الذي أنشأته على 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 القياسي. وإذا لم يكن الأمر كذلك، يُرجى الاطّلاع على تطوير مكوّنات إضافية مخصَّصة.

الخيار أ: تحميل دليل المكوّنات الإضافية على وحدة التخزين

(تمت إضافتها في الإصدار 2.5.27) تشبه خطوات إضافة مكونات إضافية من خلال تثبيت مستوى الصوت الخطوات المطلوبة لإضافة أي مكون إضافي مخصص إلى Edge Microgateway. عند تشغيل حاوية Docker، يمكنك تثبيت دليل المكوّنات الإضافية على نظامك المحلي (مستوى الصوت) على نقطة تثبيت الحاوية، وهي /opt/apigee/plugins. ثم تحدد دليل الحجم المحلي في ملف إعداد Edge Microgateway.

توضّح الخطوات التالية كيفية استخدام نقطة تثبيت Docker لتضمين مكونات إضافية مخصَّصة.

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

لمزيد من المعلومات، يُرجى الاطّلاع على VOLUME [أنظمة الملفات المشتركة].

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

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

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

بعد ذلك، قم بإنشاء الملف الشامل لإضافة التعليمة البرمجية للمكوّن الإضافي إلى صورة 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 .
    

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:

    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!