أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
مقدمة
يوضّح هذا الموضوع كيفية تشغيل Edge Microgateway في مجموعة Kubernetes كخدمة مستقلة.
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على دمج Edge Microgateway مع Kubernetes.
قبل البدء
أكمِل الخطوات الموضّحة في المتطلّبات الأساسية.
ضبط إعدادات Edge Microgateway
يضبط الأمر التالي بوابة Edge Microgateway لمؤسستك على Apigee ويُنشئ الخادم الوكيل edgemicro-auth
.
نفِّذ الأمر التالي:
edgemicro configure -o [org] -e [env] -u [username]
المكان:
org
: اسم مؤسسة Edge (يجب أن تكون مشرفًا في المؤسسة).env
: بيئة في مؤسستك (مثل الاختبار أو الإنتاج)
username
: عنوان البريد الإلكتروني المرتبط بحسابك على Apigee
مثال
edgemicro configure -o docs -e test -u jdoe@example.com
يتم حفظ الناتج (المثال موضَّح أدناه) في الملف:
$HOME/.edgemicro/org_name-env_name-config.yaml
.current nodejs version is v6.9.1 current edgemicro version is 2.5.25 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM KVM already exists in your org configuring host edgemicroservices.apigee.net for region us-west1 saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8 1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH 6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn 8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4 w+e3Z3F7IKI= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4 secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef edgemicro configuration complete!
نشر Edge Microgateway كخدمة
نفِّذ الأمر التالي لنشر Edge Microgateway كخدمة في عناقيد Kubernetes:
kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key -sec=edgemicro-secret -conf=file path of org-env-config.yaml)
حيث:
org
: مؤسسة Apigee التي حدّدتها في الأمرedgemicro configure
.env
: البيئة التي حدّدتها في الأمرedgemicro configure
.edgemicro-key
: المفتاح الذي تم إرجاعه من الأمرedgemicro configure
edgemicro-secret
: القيمة السرية التي تم إرجاعها من الأمرedgemicro configure
file path of org-env-config.yaml
: مسار ملف إعدادات Edge Micro الذي تم استرجاعه من الأمرedgemicro configure
.
على سبيل المثال:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)
مثال على الإخراج:
config/myorg-test-config.yaml) service "edge-microgateway" created deployment "edge-microgateway" created secret "mgwsecret" created
انسخ الرمز التالي والصقه في وحدة التحكّم. يُعدّد الرمز عنصر التحكّم في الدخول للسماح بالوصول الخارجي إلى خدمة
edge-microgateway
. قد تحتاج إلى الضغط على مفتاح Enter بعد لصق الأمر في وحدة التحكّم الطرفية:cat <<EOF | kubectl apply -f - apiVersion: extensions/v1beta1 kind: Ingress metadata: name: edge-microgateway-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - http: paths: - path: / backend: serviceName: edge-microgateway servicePort: 8000 EOF
عند نجاح العملية، ستظهر لك النتيجة التالية:
ingress "edge-microgateway-ingress" created
تم ضبط وحدة التحكّم في الدخول الآن للسماح بالوصول الخارجي إلى
edge-microgateway
.
نشر خدمة اختبارية
تعمل الخطوات التالية على نشر خدمة اختبار بسيطة في مجموعتك. لا يسمح عنصر التحكّم في الولوج
باستدعاء الخدمة من خارج المجموعة.
ستضبط لاحقًا بوابة Edge Microgateway للاتصال بالخدمة كهدف لها.
يسمح "عنصر التحكّم في الدخول" بالوصول الخارجي إلى خدمة edge-microgateway
.
انشِئ نموذجًا لخدمة
helloworld
. لا يمكن استدعاء الخدمة من خارج المجموعة لأنّ واجهة الدخول لا تعرف عن هذه الخدمة.kubectl apply -f samples/helloworld/helloworld-service.yaml
مثال على الإخراج:
service "helloworld" created deployment "helloworld" created
تأكَّد من نجاح عملية النشر. يُرجى العِلم أنّه لا تتوفّر عنوان IP خارجي للخدمة
helloworld
. في الخطوات التالية، عليك ضبط Edge Microgateway للوصول إلى عنوان IP الداخلي للخدمة.kubectl get services -n default
مثال على الإخراج:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE edge-microgateway NodePort 10.35.247.222 <none> 8000:32000/TCP 12m helloworld NodePort 10.35.245.103 <none> 8081:30294/TCP 47s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 47m
ضبط Edge Microgateway ليكون خادمًا وكيلاً للخدمة
احصل على عنوان IP الداخلي لخدمة helloworld
، وأضِفه كهدف
لخادم وكيل "متوافق مع بوابة التطبيقات الصغيرة". إنّ إنشاء خادم وكيل "متوافق مع بوابة التطبيقات المصغّرة" هو أحد متطلبات بوابة التطبيقات المصغّرة العادية في Edge.
اطّلِع أيضًا على المعلومات التي يجب معرفتها عن الوكيل المتوافق مع بوابة التطبيقات المصغّرة.
الحصول على عنوان IP الداخلي للخدمة الاختبارية
احصل على عنوان IP الداخلي للمجموعة والمنفذ لخدمة
helloworld
:kubectl get services helloworld
مثال على الإخراج:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3m
انسخ قيم
CLUSTER-IP
وPORT
. على سبيل المثال، في المثال أعلاه، تكون هاتان القيمتَان:10.55.254.255
و8081
. ستكون قيم نظامك مختلفة.
إنشاء خادم وكيل متوافق مع بوابة التطبيقات المصغّرة على Edge
- سجِّل الدخول إلى واجهة مستخدم Edge.
- اختَر المؤسسة نفسها التي حدّدتها سابقًا عند ضبط Edge Microgateway.
- اختَر تطوير > أدوات الربط بواجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
- انقر على + خادم وكيل. يتم فتح معالج "إنشاء خادم وكيل".
- في صفحة المعالج الأولى، اختَر الخادم الوكيل العكسي (الأكثر شيوعًا).
- انقر على التالي.
في صفحة "التفاصيل" ضمن المعالج، عليك ضبط الإعدادات على النحو التالي: احرص على ملء المعالج كما هو موضّح تمامًا. تأكَّد من أنّ اسم الخادم الوكيل يحتوي على البادئة
edgemicro_
.- اسم الخادم الوكيل: edgemicro_hello
المسار الأساسي للخادم الوكيل: /hello
واجهة برمجة التطبيقات الحالية:
http://<cluster_ip>:<port>
على سبيل المثال: http://10.55.254.255:8081
انقر على التالي.
في صفحة "الأمان" من المعالج، اختَر المرور بدون فحص (بدون).
انقر على التالي.
في صفحة "المضيفون الظاهريون" ضمن المعالج، اقبل الإعدادات التلقائية.
انقر على التالي.
في صفحة "الإنشاء" من المعالج، راجِع إعدادات الخادم الوكيل. تأكَّد من اختيار بيئة الاختبار.
انقر على إنشاء ونشر.
إنشاء حساب مطوِّر
يمكنك استخدام حساب مطوّر حالي لإجراء الاختبار، أو إنشاء حساب جديد على النحو التالي:
- انقر على النشر > المطوّرون في قائمة التنقّل الجانبية.
- انقر على + مطوِّر.
- املأ مربّع الحوار لإنشاء حساب مطوِّر جديد. يمكنك استخدام أي اسم/عنوان بريد إلكتروني لمطوِّر تريده.
إنشاء منتج لواجهة برمجة التطبيقات
أنشئ منتجًا مستندًا إلى واجهة برمجة التطبيقات كما هو موضّح أدناه. ستضيف وكيلَي اتصال إلى المنتج: edgemicro-auth وedgemicro_hello.
يمكنك الاطّلاع على مزيد من المعلومات عن خيارات ملف تعريف المنتج في مقالة المعلومات التي يجب معرفتها عن إعداد ملف تعريف المنتج في واجهة برمجة التطبيقات.
- انقر على النشر > منتجات واجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
- انقر على + منتج واجهة برمجة التطبيقات. تظهر صفحة "تفاصيل المنتج".
املأ صفحة "تفاصيل المنتج" على النحو التالي. لا تنقر على "حفظ" إلا بعدتلقّي تعليمات بذلك.
الاسم hello-world-product
الاسم المعروض Edge Micro hello product
البيئة test
الوصول Public
نوع الموافقة على المفتاح Automatic
في النصف السفلي من الصفحة، انقر على + مورد مخصّص.
اضبط المورد على
/
(شرطة مائلة واحدة).اختَر + مورد مخصّص مرة أخرى وأضِف المسار
/**
.في الجزء السفلي من الصفحة، انقر على + وكيل واجهة برمجة التطبيقات.
اختَر الخادم الوكيل المُعنوَن edgemicro-auth.
انقر على + خادم وكيل لواجهة برمجة التطبيقات مرة أخرى.
اختَر الخادم الوكيل المتوافق مع بوابة التطبيقات الصغيرة الذي يحمل الاسم edgemicro_hello.
انقر على حفظ.
إنشاء تطبيق مطوّر
- انقر على النشر > التطبيقات في قائمة التنقّل الجانبية.
- انقر على + تطبيق. ستظهر صفحة "تفاصيل تطبيق المطوّر".
املأ صفحة "تطبيق المطوّر" على النحو التالي. لا تحفظ التغييرات إلى أن يُطلب منك إجراء ذلك.
الاسم hello-world-app
الاسم المعروض Edge Micro hello app
المطوّر اختَر حساب المطوِّر التجريبي الذي أنشأته أو أي حساب مطوِّر آخر. في قسم "بيانات الاعتماد"، انقر على + منتج واختَر المنتج الذي أنشأته:
hello-world-product.
انقر على حفظ.
ستعود إلى الصفحة التي تسرد جميع تطبيقات المطوّرين.
اختَر التطبيق الذي أنشأته للتو،
hello-world-app
.انقر على إظهار بجانب مفتاح المستهلك.
انسخ قيمة مفتاح العميل. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لإجراء طلبات بيانات آمنة من واجهة برمجة التطبيقات إلى
/hello
.يُرجى الانتظار لبضع دقائق. تستغرق التغييرات التي أجريتها على Apigee Edge بضع دقائق لمزامنتها مع مثيل Edge Microgateway الذي تم نشره في السلسلة العميقة.
اختبار الخادم الوكيل
الحصول على عنوان IP لتطبيق Ingress
باستخدام عنوان IP الخارجي لمسار الإدخال، يمكنك الاتصال بخدمة Edge Microgateway من خارج المجموعة.
احصل على عنوان IP الخارجي لوحدة تحكّم الدخول:
kubectl get ing -o wide
مثال على الإخراج:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
انسخ قيمة
ADDRESS
لعنصر Ingress وصدِّرها إلى متغيّر. يمكنك ضبط المتغيّر يدويًا:export GATEWAY_IP=external_ip
على سبيل المثال:
export GATEWAY_IP=35.238.249.62
أو استخدِم هذا الأمر لضبطه نيابةً عنك:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
تأكَّد من تصدير المتغيّر. على سبيل المثال:
echo $GATEWAY_IP
مثال على الإخراج:
35.238.249.62
استدعاء واجهة برمجة التطبيقات
بعد سحب تغييرات الضبط إلى بوابة التطبيقات الصغيرة، يمكنكمحاولة طلب البيانات من واجهة برمجة التطبيقات. يمكنك استخدام عنوان IP الخاص بوحدة التحكّم في Ingress (الذي حفظته في المتغيّر GATEWAY_IP
لطلب واجهة برمجة التطبيقات لأنّ عنوان IP هذا يتيح لك طلب الخادم الوكيل من خارج مجموعة Kubernetes. تم إنشاء عملية الربط من Ingress إلى Edge Microgateway عند نشر Edge Microgateway
في المجموعة.
استدعاء واجهة برمجة التطبيقات بدون مفتاح واجهة برمجة التطبيقات ستظهر لك رسالة خطأ، كما هو موضّح أدناه:
curl $GATEWAY_IP:80/hello/
الناتج المتوقّع:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
إذا ظهرت لك هذه الرسالة، قد تحتاج إلى الانتظار قليلاً إلى أن تكتمل عملية المزامنة:
{"message":"no match found for /hello/","status":404}
لإجراء طلبات بيانات ناجحة من واجهة برمجة التطبيقات، تحتاج إلى مفتاح واجهة برمجة التطبيقات.
احصل على مفتاح المستهلك من تطبيق المطوّر الذي أنشأته. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي تحتاجه لاستدعاء الخادم الوكيل للاختبار:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/
على سبيل المثال:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/
إخراج:
Hello world
إذا ظهر لك الردّ "مرحبًا"، يعني ذلك أنّك نجحت في ضبط Edge Microgateway للاتصال بخدمة helloworld داخل عناقيد Kubernetes.
ما هي الخطوات التالية؟
راجِع قسم المهام للحصول على معلومات عن إضافة مكوّنات إضافية مخصّصة وتوسيع نطاق عمليات النشر وإجراء تغييرات على الإعدادات وغيرها من المهام التي قد تريد تنفيذها.