نشر Edge Microgateway كخدمة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
معلومات

المقدّمة

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

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة نظرة عامة على دمج 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. نظرًا لأن Ingress لا تعرف عن هذه الخدمة، لا يمكن استدعاء الخدمة من خارج المجموعة العنقودية.

    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 وأضِفه كهدف لخادم وكيل "Mrogateway-Aware". إن إنشاء خادم وكيل "مرصود للمسارات الصغرى" هو مطلب عادي من Edge Microgateway.

راجِع أيضًا المعلومات التي تحتاج إلى معرفتها عن الخوادم الوكيلة المتوافقة مع آلية Microgateway.

الحصول على عنوان 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. في صفحة Virtual Hosts (المضيفون الظاهرية) من المعالج، اقبل الإعدادات الافتراضية.

  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 للدخول

باستخدام عنوان 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 للإدخال وصدِّرها إلى متغيّر. يمكنك ضبط المتغير يدويًا:

    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 لوحدة تحكُّم الدخول (الذي حفظته في المتغيّر 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
    

    إذا رأيت الاستجابة "Hello world"، يعني ذلك أنّك نجحت في ضبط Edge Microgateway لاستدعاء خدمة helloworld داخل مجموعة Kubernetes.

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

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