أنت الآن بصدد الاطّلاع على مستندات 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
نزِّل صورة Docker لـ Edge Microgateway:
docker pull gcr.io/apigee-microgateway/edgemicro:latest
قبل الانتقال إلى الخطوات التالية، تأكَّد من تنفيذ جميع الخطوات الواردة في قسم المتطلبات الأساسية.
نفِّذ الأمر التالي لترميز ملف إعداد 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 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 "LOG_CONSOLE_OUTPUT_TO_FILE=false" \ -e SERVICE_NAME=edgemicro \ --security-opt=no-new-privileges \ --cap-drop=ALL \ gcr.io/apigee-microgateway/edgemicro:latest
المعلّمات
<tr> <td><code>SERVICE_NAME</code></td> <td>If you are on Kubernetes, this parameter is auto-populated. Otherwise, you can set it to anything you wish. If you specify nothing, the service name is set to <code>default</code>.</td> </tr> <tr> <tr> <td><code>DEBUG</code></td> <td>Set to <code>*</code> to enable debugging. </td> </tr> <tr> <td><code>HTTP_PROXY</code> <code>HTTPS_PROXY</code></td> <td>Use when Edge Microgateway is running behind a firewall and the gateway cannot communicate with Apigee Edge. For more information, see <a href="operation-and-configuration-reference-edge-microgateway#settingupedgemicrogatewaybehindacompanyfirewall">Setting up Edge Microgateway behind a company firewall</a>. <p>For example: <code>HTTP_PROXY=http://10.203.0.1:5187/</code></p></td> </tr> <tr> <td><code>NO_PROXY</code></td> <td>A comma delimited list of domains that Edge Microgateway should not proxy to. For more information, see <a href="operation-and-configuration-reference-edge-microgateway#settingupedgemicrogatewaybehindacompanyfirewall">Setting up Edge Microgateway behind a company firewall</a>. <p>For example: <code>localhost,127.0.0.1,localaddress,.localdomain.com</code></p></td> </tr> <tr> <tr> <tr> <td><code>NODE_EXTRA_CA_CERTS</code></td> <td>(Optional) Use this parameter if you are using a CA that's not trusted by default by Node.js. Set the value of this parameter to the path to a file containing one or more trusted certificates in PEM format. For details, see <a href="#tls_certificates">TLS certificates</a>.</td> </tr> <tr> <td><code>--security-opt</code></td> <td>(Optional) Sets desired Docker security options. See <a href="https://docs.docker.com/engine/reference/run/#security-configuration">Security configuration</a> in the Docker documentation.</td> </tr> <tr> <td><code>--cap-drop</code></td> <td>(Optional) Sets limits on Linux capabilities permitted in the container. See <a href="https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities">Runtime privilege and Linux capabilities</a> in the Docker documentation.</td> </tr> </tbody>المعلَمة الوصف -Pنشر جميع المنافذ المكشوفة إلى المضيف يُرجى الاطّلاع أيضًا على مرجع أمر التشغيل في Docker. -pربط منفذ واحد أو نطاق من المنافذ بشكلٍ صريح يُرجى الاطّلاع أيضًا على مرجع أمر التشغيل في Docker. -dتشغيل في الوضع المنفصل يُرجى الاطّلاع أيضًا على مرجع أمر التشغيل في Docker. -v, -- volumeتحدّد هذه السمة عملية ربط وحدة تخزين. يُرجى العِلم أنّه في حال ضبط Edge Microgateway لاستخدام بروتوكول أمان طبقة النقل (TLS) في حاوية Docker، عليك إتاحة المنفذ 8443 إذا كنت تريد ربط دليل ملف السجلّ. راجِع أيضًا VOLUME [shared filesystems]. اطّلِع أيضًا على استخدام بروتوكول TLS في حاوية Docker. -w, -- workdir(اختياري) تحدِّد هذه السمة المسار إلى الدليل الذي يجب إنشاء الملفَين edgemicro.sockوedgemicro.pidفيه. لا يمكنك تعديل جذر اسم الملفedgemicro. يتم ضبطه تلقائيًا على مسار دليل العمل الحالي.مثال:
docker run -P -p 8000:8000 -d -w /tmp --name edgemicro
...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 LOG_CONSOLE_OUTPUT_TO_FILE(قيمة منطقية) تتيح لك تحديد المكان الذي يتم إرسال ناتج السجلّ إليه. راجِع تحديد خيارات ملف السجلّ. على سبيل المثال:
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للتحقّق من أنّ الحاوية قيد التشغيل، اتّبِع الخطوات التالية:
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 to_console اختيار إرسال معلومات السجلّ إلى الإخراج العادي بدلاً من إرسالها إلى ملف سجلّ. إذا اتّبعت الخطوات لتشغيل Edge Microgateway في حاوية Docker، ستعيد الحاوية توجيه مخرجات stdout ومخرجات الأخطاء تلقائيًا إلى ملف موجود في الحاوية في الموقع التالي:
${APIGEE_ROOT}/logs/edgemicro.log.لمنع إرسال معلومات السجلّ إلى
edgemicro.log، استخدِم المتغيّرLOG_CONSOLE_OUTPUT_TO_FILEعند تشغيل الحاوية.يوضّح الجدول التالي سلوك ناتج السجلّ عند استخدام
LOG_CONSOLE_OUTPUT_TO_FILEمعto_console:to_console: trueLOG_CONSOLE_OUTPUT_TO_FILE=false- لن يتم إرسال أي سجلّات إلى ملف سجلّ Edge Microgateway، كما هو موضّح في إدارة ملفات السجلّ.
- لن يتم إرسال السجلات إلى الملف
edgemicro.log.
to_console: trueLOG_CONSOLE_OUTPUT_TO_FILE=true- لن يتم إرسال أي سجلّات إلى ملف سجلّ Edge Microgateway، كما هو موضّح في إدارة ملفات السجلّ.
- سيتم إرسال السجلّات إلى الملف
edgemicro.log.
to_console: falseLOG_CONSOLE_OUTPUT_TO_FILE=true- سيتم إرسال السجلّات إلى ملف سجلّ Edge Microgateway، كما هو موضّح في إدارة ملفات السجلّ.
- سيتم إرسال السجلّات إلى الملف
edgemicro.log.
اختبار طلب بيانات من واجهة برمجة التطبيقات
بعد بدء 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.
استنسِخ مستودع المصدر Edge Microgateway أو نزِّله من
https://github.com/apigee-internal/microgateway.cdإلى الدليلmicrogateway/kubernetes/docker/edgemicroفي دليل رمز المصدر.على سبيل المثال:
cd $HOME/git/microgateway/kubernetes/docker/edgemicroافتح الملف
entrypoint.shوعدِّل الرمز البرمجي لقبول متغير البيئةNODE_TLS_REJECT_UNAUTHORIZED. في وقت لاحق، عند تشغيل الحاوية، ستحدّد قيمة لهذا المتغيّر.أنشئ حاوية Docker:
docker build -t edgemicro .عند تشغيل الحاوية، حدِّد الخيار
-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. خطوات الإعداد الأوّلية
- حدِّد موقع الملف
openssl.cnfعلى نظامك. مثلاً:/etc/ssl/openssl.cnf - افتح ملف
opensssl.cnfلتعديله. تأكَّد من توفّر
req_extensionsفي ملف الإعداد. على سبيل المثال، يجب أن يتضمّن ملفك معلومات مشابهة لما يلي:[ req ] ... req_extensions = v3_req ... [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEnciphermentأضِف المقطع التالي إلى
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اتّبِع الخطوات الواردة في قسم المتطلبات الأساسية لتهيئة Edge Microgateway وإعدادها، إذا لم يسبق لك إجراء ذلك. وعند الانتهاء، يجب أن تكون قد أنشأت وكيلًا متوافقًا مع Edge Microgateway ومنتج API ومطوّرًا وتطبيق مطوّر. بالإضافة إلى ذلك، يجب أن تكون قد نفّذت الأمر
edgemicro configureوتلقّيت مفتاحًا وكلمة مرور.
2. إنشاء شهادات موقَّعة ذاتيًا
بعد ذلك، أنشئ الشهادات والمفاتيح التي تحتاج إليها لإعداد بروتوكول أمان طبقة النقل (TLS):
cdإلى دليل$HOME/.edgemicroأنشئ نص 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
في ملف bash، تأكَّد من أنّ مسار ملف
openssl.cnfصحيح.نفِّذ ملف bash. سيُطلب منك تقديم معلومات الشهادة. احرص على استخدام
localhostللاسم الشائع.تأكَّد من إنشاء الملفات التالية:
rootca.keyrootca.pemtls.keytls.csrrootca.srltls.crt
3- تعديل ملف إعداد Edge Microgateway
افتح ملف إعداد Edge Micro في محرِّر. على سبيل المثال:
vi $HOME/.edgemicro/myorg-test-config.yamlعدِّل مقطع
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: ...نفِّذ الأمر التالي لترميز ملف إعداد 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. تشغيل الحاوية
نفِّذ الأمر التالي لتشغيل حاوية 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
لاحظ المَعلمات التالية المستخدَمة في الأمر، وهي تختلف عن الأمر الأساسي الموضّح في تشغيل Edge Micro كحاوية Docker.
- تم ضبط
portعلى8443. - يتم استخدام عملية ربط وحدة تخزين لربط ملفات المفتاح والشهادة.
- يُستخدَم المتغيّر
NODE_EXTRA_CA_CERTSلإضافة مرجع تصديق مخصّص (حسب الحاجة في حالة الشهادات الموقّعة ذاتيًا).
- تم ضبط
5- اختبار إعدادات بروتوكول أمان طبقة النقل (TLS)
نفِّذ أمر cURL التالي لاختبار عملية الإعداد. استبدِل basepath ومفتاح واجهة برمجة التطبيقات في الأمر. يفترض المثال التالي أنّك في الدليل الذي يقع فيه
rootca.pemوأنّ الوكيل الذي أنشأته يتضمّن basepath/hello:curl -v https://localhost:8443/hello --cacert rootca.pem \ -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"يعرض الناتج المفصّل لـ 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. خطوات الإعداد الأوّلية
- حدِّد موقع الملف
openssl.cnfعلى نظامك. مثلاً:/etc/ssl/openssl.cnf - افتح ملف
opensssl.cnfلتعديله. تأكَّد من توفّر
req_extensionsفي ملف الإعداد. على سبيل المثال، يجب أن يتضمّن ملفك معلومات مشابهة لما يلي:[ req ] ... req_extensions = v3_req ... [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEnciphermentأضِف المقطع التالي إلى
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نفِّذ الأمر
edgemicro configure:edgemicro configure -o your_org -e your_env -u your_username
لمزيد من التفاصيل حول الإعداد، يُرجى الاطّلاع على الجزء 1: إعداد Edge Microgateway.
انسخ مفتاح واجهة برمجة التطبيقات وشهادات الاعتماد السرية التي تم إرجاعها من
edgemicro configure. ستحتاج إلى هذه القيم لتشغيل الحاوية. على سبيل المثال:The following credentials are required to start edge micro key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0 secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
2. إنشاء تطبيق مستهدف Node.js
cdإلى دليل.edgemicroأنشئ نص 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
في ملف bash، تأكَّد من أنّ مسار ملف
openssl.cnfصحيح.نفِّذ ملف bash. سيُطلب منك تقديم معلومات الشهادة. احرص على استخدام
hellworldللاسم الشائع.تأكَّد من إنشاء الملفات التالية:
rootca.keyrootca.pemtls.keytls.csrrootca.srltls.crt
أنشئ ملفًا جديدًا باسم
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);أنشئ ملف
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" } }نفِّذ
npm installللحصول على التبعيات.أنشئ ملف 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" ]
أنشئ صورة Docker:
docker build -t helloworld .ابدأ تشغيل نموذج التطبيق:
docker run -P -p 9443:9443 --name helloworld helloworld
3- إنشاء عناصر في Apigee Edge
أنشئ خادمًا وكيلاً متوافقًا مع Edge Microgateway باستخدام هذه الإعدادات. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء خادم وكيل لواجهة برمجة التطبيقات متوافق مع Edge Microgateway على Edge.
- اسم الخادم الوكيل:
edgemicro_local - المراجعة:
1 - مسار القاعدة:
/local - القيمة المُستهدفة:
https://helloworld:9443
- اسم الخادم الوكيل:
أنشئ منتجًا من منتجات واجهة برمجة التطبيقات. لمعرفة التفاصيل، يُرجى الاطّلاع على إنشاء منتج.
إنشاء مطوِّر لمعرفة التفاصيل، يُرجى الاطّلاع على إنشاء مطوِّر.
أنشئ تطبيقًا للمطوّرين. لمزيد من التفاصيل، يُرجى الاطّلاع على إنشاء تطبيق للمطوّرين.
4. تشغيل الحاوية
افتح ملف إعداد Edge Micro في محرِّر. على سبيل المثال:
vi $HOME/.edgemicro/myorg-test-config.yamlعدِّل مقطع
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: ...نفِّذ الأمر التالي لترميز ملف إعداد 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 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)
نفِّذ أمر 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"}أعِد تشغيل 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
نفِّذ أمر cURL التالي. استبدِل مسار basepath ومفتاح واجهة برمجة التطبيقات كما كان من قبل. على سبيل المثال:
curl https://localhost:8443/local -k -H "x-api-key: xxxx" -vتحقَّق من الناتج. عند النجاح، ستتلقّى استجابة حالة 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 لتضمين مكوّنات إضافية مخصّصة.
إيقاف Edge Microgateway:
edgemicro stopأنشئ مجلدًا للمكوّنات الإضافية المخصّصة. على سبيل المثال، يمكنك إنشاء
$HOME/edgemicro/custom/pluginsأضِف دليل المكوّن الإضافي المخصّص إلى ملف إعدادات Edge Microgateway. على سبيل المثال:
plugins: dir: $HOME/edgemicro/custom/plugins sequence: - oauth - response-uppercase ````اكتب المكوّن الإضافي واختبِره وفقًا للتعليمات الواردة في كتابة مكوّن إضافي بسيط. احرص على وضع رمز البرنامج المساعد في بنية الدليل المناسبة. على سبيل المثال:
custom | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsonشغِّل حاوية 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اتّصِل بواجهة برمجة التطبيقات لاختبار المكوّن الإضافي.
لمزيد من المعلومات، يُرجى الاطّلاع على VOLUME [shared filesystems].
الخيار (ب): إنشاء المكوّنات الإضافية في الحاوية
في هذا الخيار، يمكنك إنشاء المكوّنات الإضافية في الحاوية.
1. تجميع المكوّنات الإضافية
اكتب المكوّن الإضافي واختبِره وفقًا للتعليمات الواردة في كتابة مكوّن إضافي بسيط.
ضَع رمز المكوّن الإضافي في بنية الدليل المناسبة. يجب أن تتبع أدلة المكوّنات الإضافية بنية محدّدة. يوضّح المثال التالي البنية التي يجب اتّباعها، حيث يمثّل
response-uppercaseوrequest-headersأسماء المجلدات التي تحتوي على رمز المكوّن الإضافي المخصّص (هذه الأسماء هي أمثلة فقط، وقد تختلف أسماء المجلدات):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsoncdإلى المجلدpluginفي المجلد
plugin، اضغط المجلدpluginsبأكمله:zip -r plugins.zip plugins/
2. إنشاء صورة Docker
بعد ذلك، أنشئ ملف Dockerfile لإضافة رمز المكوّن الإضافي إلى صورة Edge Microgateway.
- في الدليل نفسه الذي يوجد فيه ملف ZIP، أنشئ ملفًا جديدًا باسم
Dockerfile. أضِف الرمز التالي إلى
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"]أنشئ صورة Docker جديدة لـ Edge Microgateway تتضمّن المكوّنات الإضافية:
docker build -t image-name .على سبيل المثال:
docker build -t edgemicroplugins .
3- تعديل إعدادات Edge Microgateway
بعد أن يتم تجميع المكوّنات الإضافية، عليك إضافتها إلى ملف إعدادات Edge Microgateway.
افتح ملف إعداد Edge Microgateway في محرِّر:
$HOME/.edgemicro/org-env-config.yaml
على سبيل المثال:
vi $HOME/.edgemicro/myorg-test-config.yaml
أضِف دليل المكوّن الإضافي إلى ملف الإعدادات. في المثال التالي، تحدّد السمة
dirالموقع الجغرافي لرمز المكوّن الإضافي (الذي حدّدته في Dockerfile). يجب أيضًا تحديد اسم دليل المكوّن الإضافي، وهوresponse-uppercaseفي المثال أدناه.edgemicro: ... plugins: dir: /opt/apigee/plugins sequence: - oauth - response-uppercase
4. بدء استخدام البوابة المصغّرة
أخيرًا، يجب بدء تشغيل البوابة المصغّرة في الحاوية.
نفِّذ الأمر التالي لترميز ملف إعداد 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 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
اتّصِل بواجهة برمجة التطبيقات لاختبار المكوّن الإضافي:
اختبِر تنفيذ رمز المكوّن الإضافي من خلال استدعاء واجهة برمجة التطبيقات والتأكّد من أنّ الناتج هو كما هو متوقّع:
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!