نشر Edge Microgateway كخدمة

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

مقدمة

يشرح هذا الموضوع كيفية تشغيل 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. ولأن حركة Ingress لا تعرف حول هذه الخدمة، لا يمكن استدعاء الخدمة من خارج المجموعة.

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

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

    service "helloworld" created deployment "helloworld" created
    
  2. تأكَّد من نجاح عملية النشر. لاحظ أنه لا يوجد عنوان IP خارجي خدمة helloworld. ستقوم بتهيئة Edge في الخطوات التالية مدخل مصغّر للوصول إلى عنوان 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 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. اختيار المؤسسة نفسها التي حدَّدتها سابقًا عند الضبط مدخل مصغّر على حافة
  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. في صفحة الإصدار بالمعالج، راجع إعدادات الخادم الوكيل. تأكد من أن تم اختيار بيئة test.

  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. اختَر الخادم الوكيل المستنِد إلى واجهة المستخدم الصغيرة (microgateway) المُسمّى edgemicro_hello.

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

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

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

    الاسم hello-world-app
    الاسم المعروض Edge Micro hello app
    المطوّر اختَر مطوِّر الاختبار الذي أنشأته أو سيفي أي مطوّر برامج بذلك.
  4. في قسم Credentials (بيانات الاعتماد)، انقر على + Product (+ منتج) واختَر المنتج الذي تريد تاريخ الإنشاء: hello-world-product.

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

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

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

  8. انقر على عرض بجانب مفتاح المستخدم.

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

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

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

الحصول على عنوان IP للزيارات الواردة

باستخدام عنوان IP الخارجي لـ Ingress، يمكنك الاتصال بخدمة 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 لوحدة التحكم في الدخول (الذي حفظته في المتغيّر 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 تجميع.

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

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