البرنامج التعليمي: نشر تطبيق Java على مجموعة نسيج الخدمة في Azure
هذا البرنامج التعليمي هو الجزء الثالث من سلسلة ويوضح لك كيفية نشر تطبيق Service Fabric إلى نظام مجموعة في Azure.
في الجزء الثالث من السلسلة، تعلم كيفية:
- أنشئ مجموعة Linux آمنة في Azure
- نشر تطبيق إلى نظام مجموعة
ستتعلم في سلسلة البرامج التعليمية هذه كيفية:
المتطلبات الأساسية
قبل أن تبدأ هذا البرنامج التعليمي:
- عند عدم وجود اشتراك في Azure، فقم بإنشاء حساب مجاني
- تثبيت Azure CLI
- قم بتثبيت Service Fabric SDK لنظام التشغيل Mac أو Linux
- تثبيت Python 3
قم بإنشاء مجموعة نسيج الخدمة في Azure
تُنشئ الخطوات التالية الموارد اللازمة المطلوبة لنشر تطبيقك في مجموعة Service Fabric. بالإضافة إلى ذلك، يتم إعداد الموارد اللازمة لمراقبة صحة الحل الخاص بك باستخدام مكدس ELK (Elasticsearch وLogstash وKibana). على وجه التحديد، يتم استخدام مراكز الأحداث Event Hubs كمستودع للسجلات من Service Fabric. تم تكوينه لإرسال السجلات من مجموعة نسيج الخدمة إلى مثيل Logstash الخاص بك.
افتح محطة طرفية وقم بتنزيل الحزمة التالية التي تحتوي على البرامج النصية المساعدة والقوالب اللازمة لإنشاء الموارد في Azure
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.git
قم بتسجيل الدخول إلى حساب Azure الخاص بك
az login
قم بتعيين اشتراك Azure الذي تريد استخدامه لإنشاء الموارد
az account set --subscription [SUBSCRIPTION-ID]
من المجلد service-fabric-java-quickstart/AzureCluster، قم بتشغيل الأمر التالي لإنشاء شهادة مجموعة في Key Vault. تُستخدم هذه الشهادة لتأمين مجموعة Service Fabric الخاصة بك. قم بتوفير المنطقة (يجب أن تكون هي نفسها مثل مجموعة نسيج الخدمة)، واسم مجموعة موارد مخزن المفاتيح، واسم مخزن المفاتيح، وكلمة مرور الشهادة، واسم DNS للمجموعة.
./new-service-fabric-cluster-certificate.sh [REGION] [KEY-VAULT-RESOURCE-GROUP] [KEY-VAULT-NAME] [CERTIFICATE-PASSWORD] [CLUSTER-DNS-NAME-FOR-CERTIFICATE] Example: ./new-service-fabric-cluster-certificate.sh 'westus' 'testkeyvaultrg' 'testkeyvault' '<password>' 'testservicefabric.westus.cloudapp.azure.com'
يُرجع الأمر السابق المعلومات التالية التي يجب تدوينها لاستخدامها لاحقاً.
Source Vault Resource Id: /subscriptions/<subscription_id>/resourceGroups/testkeyvaultrg/providers/Microsoft.KeyVault/vaults/<name> Certificate URL: https://<name>.vault.azure.net/secrets/<cluster-dns-name-for-certificate>/<guid> Certificate Thumbprint: <THUMBPRINT>
قم بإنشاء مجموعة موارد لحساب التخزين الذي يخزن سجلاتك
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrg
قم بإنشاء حساب تخزين سيُستخدم لتخزين السجلات التي سيتم إنتاجها
az storage account create -g [RESOURCE-GROUP-NAME] -l [REGION] --name [STORAGE-ACCOUNT-NAME] --kind Storage Example: az storage account create -g teststorageaccountrg -l westus --name teststorageaccount --kind Storage
قم بالوصول إلى مدخل Microsoft Azure وانتقل إلى علامة التبويب Shared Access Signature لحساب التخزين الخاص بك. قم بإنشاء الرمز المميز لـ SAS على النحو التالي.
انسخ عنوان URL الخاص بحساب SAS وضعه جانباً لاستخدامه عند إنشاء مجموعة Service Fabric. إنه يشبه عنوان URL التالي:
?sv=2017-04-17&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-01-31T03:24:04Z&st=2018-01-30T19:24:04Z&spr=https,http&sig=IrkO1bVQCHcaKaTiJ5gilLSC5Wxtghu%2FJAeeY5HR%2BPU%3D
أنشئ مجموعة موارد تحتوي على موارد Event Hub. يتم استخدام مراكز الأحداث لإرسال رسائل من Service Fabric إلى الخادم الذي يقوم بتشغيل موارد ELK.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrg
أنشئ مورد مراكز الأحداث باستخدام الأمر التالي. اتبع المطالبات لإدخال تفاصيل مساحة الاسم، وeventHubName، وConsumerGroupName، وsendAuthorizationRule، وReceiverAuthorizationRule.
az deployment group create -g [RESOURCE-GROUP-NAME] --template-file eventhubsdeploy.json Example: az deployment group create -g testeventhubsrg --template-file eventhubsdeploy.json Please provide string value for 'namespaceName' (? for help): testeventhubnamespace Please provide string value for 'eventHubName' (? for help): testeventhub Please provide string value for 'consumerGroupName' (? for help): testeventhubconsumergroup Please provide string value for 'sendAuthorizationRuleName' (? for help): sender Please provide string value for 'receiveAuthorizationRuleName' (? for help): receiver
انسخ محتويات الحقل output في إخراج JSON للأمر السابق. يتم استخدام معلومات المرسل عند إنشاء مجموعة نسيج الخدمة. يجب حفظ اسم ومفتاح جهاز الاستقبال للاستخدام في البرنامج التعليمي التالي عندما يتم تكوين خدمة Logstash لتلقي الرسائل من Event Hub. blob التالي هو مثال لإخراج JSON:
"outputs": { "receiver Key": { "type": "String", "value": "[KEY]" }, "receiver Name": { "type": "String", "value": "receiver" }, "sender Key": { "type": "String", "value": "[KEY]" }, "sender Name": { "type": "String", "value": "sender" } }
قم بتشغيل البرنامج النصي eventhubssastoken.py لإنشاء عنوان URL لـ SAS لمورد EventHubs الذي أنشأته. يتم استخدام عنوان URL لـ SAS بواسطة مجموعة نسيج الخدمة لإرسال السجلات إلى مراكز الأحداث. نتيجة لذلك، يتم استخدام سياسة المرسل لإنشاء عنوان URL. يقوم البرنامج النصي بإرجاع عنوان URL لـ SAS لمورد مراكز الأحداث المستخدم في الخطوة التالية:
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'
تم إرجاع قيمة الحقل sr في JSON. قيمة الحقل sr هي رمز SAS المميز لـ EventHubs. يعد عنوان URL التالي مثالاً للحقل sr:
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender
يتبع عنوان URL الخاص بـ SAS الخاص بـ EventHubs البنية:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>
. على سبيل المثال،https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=sender
افتح الملف sfdeploy.parameters.json واستبدل المحتويات التالية من الخطوات السابقة. تمت الإشارة إلى [SAS-URL-STORAGE-ACCOUNT] في الخطوة 8. تمت الإشارة إلى [SAS-URL-EVENT-HUBS] في الخطوة 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }
يفتح sfdeploy.parameters.json. قم بتغيير المعلمات التالية ثم احفظ الملف.
- اسم نظام مجموعة. استخدم فقط الأحرف الصغيرة والأرقام.
- adminUserName (إلى قيمة غير فارغة)
- adminPassword (لقيمة أخرى غير فارغة)
قم بتشغيل الأمر التالي لإنشاء مجموعة نسيج الخدمة
az sf cluster create --location 'westus' --resource-group 'testlinux' --template-file sfdeploy.json --parameter-file sfdeploy.parameters.json --secret-identifier <certificate_url_from_step4>
نشر التطبيق الخاص بك إلى نظام مجموعة
قبل نشر تطبيقك، تحتاج إلى إضافة المقتطف التالي إلى ملف Voting/VotingApplication /ApplicationManifest.xml. الحقل X509FindValue هو بصمة الإبهام التي تم إرجاعها من الخطوة 4 من قسم Create a Service Fabric cluster in Azure. تم تضمين هذا المقتطف ضمن حقل ApplicationManifest (الحقل الجذر).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>
لنشر التطبيق الخاص بك إلى هذه نظام مجموعة، يجب عليك استخدام SFCTL لتأسيس اتصال بنظام مجموعة. يتطلب SFCTL ملف PEM مع كل من المفتاح العام والخاص للاتصال بالمجموعة. قم بتشغيل الأمر التالي لإنتاج ملف PEM باستخدام المفتاح العام والخاص.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>
قم بتشغيل الأمر التالي للاتصال بالمجموعة.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verify
لنشر التطبيق الخاص بك، انتقل إلى المجلد Voting/Scripts وقم بتشغيل البرنامج النصي install.sh.
./install.sh
للوصول إلى Service Fabric Explorer، افتح متصفحك المفضل واكتب
https://testlinuxcluster.westus.cloudapp.azure.com:19080
. اختر الشهادة من مخزن الشهادات التي تريد استخدامها للاتصال بنقطة النهاية هذه. إذا كنت تستخدم جهاز Linux، فيجب استيراد الشهادات التي تم إنشاؤها بواسطة البرنامج النصي new-service-fabric-cluster-certificate.sh إلى Chrome لعرض Service Fabric Explorer. إذا كنت تستخدم جهاز Mac، فيجب عليك تثبيت ملف PFX في Keychain الخاص بك. لعلك لاحظت أن التطبيق الخاص بك قد تم تثبيته على نظام مجموعة.للوصول إلى التطبيق الخاص بك، اكتب
https://testlinuxcluster.westus.cloudapp.azure.com:8080
لإلغاء تثبيت التطبيق الخاص بك من المجموعة، قم بتشغيل البرنامج النصي uninstall.sh في مجلد Scripts
./uninstall.sh
الخطوات التالية
في هذا البرنامج التعليمي، نتعلم طريقة القيام بما يأتي:
- أنشئ مجموعة Linux آمنة في Azure
- إنشاء الموارد اللازمة للرصد مع ELK
تقدم إلى البرنامج التعليمي الآتي: