نشر Edge Microgateway كخدمة

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

مقدمة

يوضّح هذا الموضوع كيفية تشغيل Edge Microgateway في مجموعة Kubernetes كخدمة مستقلة.

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على دمج Edge Microgateway مع Kubernetes.

قبل البدء

أكمِل الخطوات الموضّحة في المتطلّبات الأساسية.

ضبط إعدادات Edge Microgateway

يضبط الأمر التالي بوابة Edge Microgateway لمؤسستك على Apigee ويُنشئ الخادم الوكيل edgemicro-auth.

  1. نفِّذ الأمر التالي:

    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 كخدمة

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

  1. انشِئ نموذجًا لخدمة helloworld. لا يمكن استدعاء الخدمة من خارج المجموعة لأنّ واجهة الدخول لا تعرف عن هذه الخدمة.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    مثال على الإخراج:

    service "helloworld" created deployment "helloworld" created
    
  2. تأكَّد من نجاح عملية النشر. يُرجى العِلم أنّه لا تتوفّر عنوان 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 الداخلي للخدمة الاختبارية

  1. احصل على عنوان 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
    
  2. انسخ قيم CLUSTER-IP وPORT. على سبيل المثال، في المثال أعلاه، تكون هاتان القيمتَان: 10.55.254.255 و8081. ستكون قيم نظامك مختلفة.

إنشاء خادم وكيل متوافق مع بوابة التطبيقات المصغّرة على Edge

  1. سجِّل الدخول إلى واجهة مستخدم Edge.
  2. اختَر المؤسسة نفسها التي حدّدتها سابقًا عند ضبط Edge Microgateway.
  3. اختَر تطوير > أدوات الربط بواجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
  4. انقر على + خادم وكيل. يتم فتح معالج "إنشاء خادم وكيل".
  5. في صفحة المعالج الأولى، اختَر الخادم الوكيل العكسي (الأكثر شيوعًا).
  6. انقر على التالي.
  7. في صفحة "التفاصيل" ضمن المعالج، عليك ضبط الإعدادات على النحو التالي: احرص على ملء المعالج كما هو موضّح تمامًا. تأكَّد من أنّ اسم الخادم الوكيل يحتوي على البادئة edgemicro_.

    1. اسم الخادم الوكيل: edgemicro_hello
    2. المسار الأساسي للخادم الوكيل: ‎/hello

    3. واجهة برمجة التطبيقات الحالية: http://<cluster_ip>:<port>

      على سبيل المثال: http://10.55.254.255:8081

  8. انقر على التالي.

  9. في صفحة "الأمان" من المعالج، اختَر المرور بدون فحص (بدون).

  10. انقر على التالي.

  11. في صفحة "المضيفون الظاهريون" ضمن المعالج، اقبل الإعدادات التلقائية.

  12. انقر على التالي.

  13. في صفحة "الإنشاء" من المعالج، راجِع إعدادات الخادم الوكيل. تأكَّد من اختيار بيئة الاختبار.

  14. انقر على إنشاء ونشر.

إنشاء حساب مطوِّر

يمكنك استخدام حساب مطوّر حالي لإجراء الاختبار، أو إنشاء حساب جديد على النحو التالي:

  1. انقر على النشر > المطوّرون في قائمة التنقّل الجانبية.
  2. انقر على + مطوِّر.
  3. املأ مربّع الحوار لإنشاء حساب مطوِّر جديد. يمكنك استخدام أي اسم/عنوان بريد إلكتروني لمطوِّر تريده.

إنشاء منتج لواجهة برمجة التطبيقات

أنشئ منتجًا مستندًا إلى واجهة برمجة التطبيقات كما هو موضّح أدناه. ستضيف وكيلَي اتصال إلى المنتج: edgemicro-auth وedgemicro_hello.

يمكنك الاطّلاع على مزيد من المعلومات عن خيارات ملف تعريف المنتج في مقالة المعلومات التي يجب معرفتها عن إعداد ملف تعريف المنتج في واجهة برمجة التطبيقات.

  1. انقر على النشر > منتجات واجهة برمجة التطبيقات في قائمة التنقّل الجانبية.
  2. انقر على + منتج واجهة برمجة التطبيقات. تظهر صفحة "تفاصيل المنتج".
  3. املأ صفحة "تفاصيل المنتج" على النحو التالي. لا تنقر على "حفظ" إلا بعدتلقّي تعليمات بذلك.

    الاسم hello-world-product
    الاسم المعروض Edge Micro hello product
    البيئة test
    الوصول Public
    نوع الموافقة على المفتاح Automatic
  4. في النصف السفلي من الصفحة، انقر على + مورد مخصّص.

  5. اضبط المورد على / (شرطة مائلة واحدة).

  6. اختَر + مورد مخصّص مرة أخرى وأضِف المسار /**.

  7. في الجزء السفلي من الصفحة، انقر على + وكيل واجهة برمجة التطبيقات.

  8. اختَر الخادم الوكيل المُعنوَن edgemicro-auth.

  9. انقر على + خادم وكيل لواجهة برمجة التطبيقات مرة أخرى.

  10. اختَر الخادم الوكيل المتوافق مع بوابة التطبيقات الصغيرة الذي يحمل الاسم edgemicro_hello.

  11. انقر على حفظ.

إنشاء تطبيق مطوّر

  1. انقر على النشر > التطبيقات في قائمة التنقّل الجانبية.
  2. انقر على + تطبيق. ستظهر صفحة "تفاصيل تطبيق المطوّر".
  3. املأ صفحة "تطبيق المطوّر" على النحو التالي. لا تحفظ التغييرات إلى أن يُطلب منك إجراء ذلك.

    الاسم hello-world-app
    الاسم المعروض Edge Micro hello app
    المطوّر اختَر حساب المطوِّر التجريبي الذي أنشأته أو أي حساب مطوِّر آخر.
  4. في قسم "بيانات الاعتماد"، انقر على + منتج واختَر المنتج الذي أنشأته: hello-world-product.

  5. انقر على حفظ.

  6. ستعود إلى الصفحة التي تسرد جميع تطبيقات المطوّرين.

  7. اختَر التطبيق الذي أنشأته للتو، hello-world-app.

  8. انقر على إظهار بجانب مفتاح المستهلك.

  9. انسخ قيمة مفتاح العميل. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لإجراء طلبات بيانات آمنة من واجهة برمجة التطبيقات إلى /hello.

  10. يُرجى الانتظار لبضع دقائق. تستغرق التغييرات التي أجريتها على Apigee Edge بضع دقائق لمزامنتها مع مثيل Edge Microgateway الذي تم نشره في السلسلة العميقة.

اختبار الخادم الوكيل

الحصول على عنوان IP لتطبيق Ingress

باستخدام عنوان IP الخارجي لمسار الإدخال، يمكنك الاتصال بخدمة Edge Microgateway من خارج المجموعة.

  1. احصل على عنوان IP الخارجي لوحدة تحكّم الدخول:

    kubectl get ing -o wide

    مثال على الإخراج:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. انسخ قيمة 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:]")
  3. تأكَّد من تصدير المتغيّر. على سبيل المثال:

    echo $GATEWAY_IP

    مثال على الإخراج:

    35.238.249.62
    

استدعاء واجهة برمجة التطبيقات

بعد سحب تغييرات الضبط إلى بوابة التطبيقات الصغيرة، يمكنكمحاولة طلب البيانات من واجهة برمجة التطبيقات. يمكنك استخدام عنوان IP الخاص بوحدة التحكّم في Ingress (الذي حفظته في المتغيّر GATEWAY_IP لطلب واجهة برمجة التطبيقات لأنّ عنوان IP هذا يتيح لك طلب الخادم الوكيل من خارج مجموعة Kubernetes. تم إنشاء عملية الربط من Ingress إلى Edge Microgateway عند نشر Edge Microgateway في المجموعة.

  1. استدعاء واجهة برمجة التطبيقات بدون مفتاح واجهة برمجة التطبيقات ستظهر لك رسالة خطأ، كما هو موضّح أدناه:

    curl $GATEWAY_IP:80/hello/

    الناتج المتوقّع:

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

    إذا ظهرت لك هذه الرسالة، قد تحتاج إلى الانتظار قليلاً إلى أن تكتمل عملية المزامنة:

    {"message":"no match found for /hello/","status":404}
    

    لإجراء طلبات بيانات ناجحة من واجهة برمجة التطبيقات، تحتاج إلى مفتاح واجهة برمجة التطبيقات.

  2. احصل على مفتاح المستهلك من تطبيق المطوّر الذي أنشأته. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي تحتاجه لاستدعاء الخادم الوكيل للاختبار:

    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.

ما هي الخطوات التالية؟

راجِع قسم المهام للحصول على معلومات عن إضافة مكوّنات إضافية مخصّصة وتوسيع نطاق عمليات النشر وإجراء تغييرات على الإعدادات وغيرها من المهام التي قد تريد تنفيذها.