إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إشعار
دخلت خطط BasicStandardEnterprise فترة إيقاف في 17 مارس 2025. لمزيد من المعلومات، راجع إعلان إيقاف Azure Spring Apps.
تنطبق هذه المقالة على:✅ Basic/Standard ❎ Enterprise
يشرح هذا التشغيل السريع كيفية إنشاء تطبيقات Spring وتوزيعها إلى Azure Spring Apps باستخدام Azure CLI.
المتطلبات الأساسية
- إكمال عمليات التشغيل السريع السابقة في هذه السلسلة:
- توفير مثيل خدمة Azure Spring Apps.
- إعداد خادم تكوين Azure Spring Apps.
تنزيل التطبيق النموذج
استخدم الخطوات التالية لتنزيل نموذج التطبيق. إذا كنت تستخدم Azure Cloud Shell، فانتقل إلى موجه أوامر محلي.
أنشئ مجلدًا جديدًا واستنسخ مستودع التطبيق النموذج.
mkdir source-codecd source-codegit clone https://github.com/Azure-Samples/azure-spring-apps-samplesانتقل إلى دليل المستودع.
cd azure-spring-apps-samples
انشر PlanetWeatherProvider
استخدم الخطوات التالية لنشر مشروع PlanetWeatherProvider.
إنشاء تطبيق
PlanetWeatherProviderللمشروع في مثيل Azure Spring Apps.az spring app create --name planet-weather-provider --runtime-version NetCore_31لتمكين التسجيل التلقائي للخدمة، قمت بإعطاء التطبيق نفس اسم قيمة
spring.application.nameفي ملف appsettings.json للمشروع:"spring": { "application": { "name": "planet-weather-provider" } }ربما يستغرق تشغيل الأمر بضع دقائق.
قم بتغيير الدليل إلى مجلد مشروع PlanetWeatherProvider .
cd steeltoe-sample/src/planet-weather-providerأنشئ الثنائيات وملف .zip ليتم نشرها.
dotnet publish -c release -o ./publishتلميح
يحتوي ملف المشروع على XML التالية لحزم الثنائيات في ملف .zip بعد كتابتها إلى المجلد ./publish:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>نشر المشروع إلى Azure.
تأكد من أن موجه الأوامر في مجلد المشروع قبل تشغيل الأمر التالي.
az spring app deploy \ --name planet-weather-provider \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \ --artifact-path ./publish-deploy-planet.zipيحدد الخيار
--main-entryالمسار النسبي من المجلد الجذر لملف .zip إلى ملف .dll الذي يحتوي على نقطة إدخال التطبيق. بعد أن تقوم الخدمة بتحميل ملف .zip، تستخرج جميع الملفات والمجلدات، ثم تحاول تنفيذ نقطة الإدخال في ملف .dll المحدد.ربما يستغرق تشغيل الأمر بضع دقائق.
انشر SolarSystemWeather
استخدم الخطوات التالية لنشر مشروع SolarSystemWeather.
إنشاء تطبيق آخر في مثيل Azure Spring Apps للمشروع.
az spring app create --name solar-system-weather --runtime-version NetCore_31solar-system-weatherهو الاسم المحدد في ملفSolarSystemWeatherالمشروعappsettings.json.ربما يستغرق تشغيل الأمر بضع دقائق.
غيّر الدليل إلى مجلد المشروع
SolarSystemWeather.cd ../solar-system-weatherأنشئ الثنائيات وملف .zip ليتم نشرها.
dotnet publish -c release -o ./publishنشر المشروع إلى Azure.
az spring app deploy \ --name solar-system-weather \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \ --artifact-path ./publish-deploy-solar.zipربما يستغرق تشغيل الأمر بضع دقائق.
عيّن نقاط النهاية العامة
قبل اختبار التطبيق، احصل على نقطة نهاية عامة لطلب HTTP GET إلى solar-system-weather التطبيق.
قم بتشغيل الأمر التالي لتعيين نقطة النهاية.
az spring app update --name solar-system-weather --assign-endpoint trueقم بتشغيل الأمر التالي للحصول على عنوان URL لنقطة النهاية.
Windows:
az spring app show --name solar-system-weather --output tableLinux:
az spring app show --name solar-system-weather | grep url
اختبر التطبيق
لاختبار التطبيق، أرسل طلب GET إلى solar-system-weather التطبيق. في المستعرض، انتقل إلى عنوان URL العام مع /weatherforecast إلحاق به. على سبيل المثال: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
الإخراج هو JSON:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
تعرض هذه الاستجابة أن كلا تطبيقي Spring يعملان. يقوم التطبيق SolarSystemWeatherبإرجاع البيانات التي قام باستردادها من التطبيق PlanetWeatherProvider.
تشرح هذه المقالة كيفية إنشاء تطبيقات Spring وتوزيعها إلى Azure Spring Apps. يمكنك استخدام Azure CLI أو المكون الإضافي Maven أو IntelliJ. تصف هذه المقالة كل بديل.
المتطلبات الأساسية
- إكمال عمليات التشغيل السريع السابقة في هذه السلسلة:
- توفير مثيل خدمة Azure Spring Apps.
- إعداد خادم تكوين Azure Spring Apps.
- 17 دينار
- Maven 3.0 أو أعلى
- اشتراك Azure. في حال لم يكن لديك اشتراك Azure، أنشئ حسابًا مجانيًا قبل البدء.
- اختياريا، إصدار Azure CLI 2.45.0 أو أعلى. تثبيت ملحق Azure Spring Apps باستخدام الأمر التالي:
az extension add --name spring - اختياريا، مجموعة أدوات Azure ل IntelliJ.
بناء تطبيقات Spring محلياً
استخدم الأوامر التالية لاستنساخ مستودع العينة، وانتقل إلى مجلد العينة، ثم قم بإنشاء المشروع.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
يستغرق تجميع المشروع 5-10 دقائق. عند تجميع المشروع، يجب أن يكون لديك ملفات JAR فردية لكل خدمة في المجلدات الخاصة بها.
إنشاء تطبيقات وتوزيعها على Azure Spring Apps
استخدم الخطوات التالية لإنشاء التطبيقات ونشرها على Azure Spring Apps باستخدام CLI.
إذا لم تقم بتشغيل الأوامر التالية في عمليات التشغيل السريع السابقة، فقم بتشغيلها الآن لتعيين الإعدادات الافتراضية ل CLI.
az configure --defaults group=<resource-group-name> spring=<service-name>إنشاء تطبيقي Spring الأساسيين ل PetClinic:
api-gatewayوcustomers-service.az spring app create \ --name api-gateway \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi \ --assign-endpoint az spring app create \ --name customers-service \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Giانشر ملفات JAR المضمنة في الخطوة السابقة.
az spring app deploy \ --name api-gateway \ --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m" az spring app deploy \ --name customers-service \ --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m"الاستعلام عن حالة التطبيق بعد عمليات التوزيع باستخدام الأمر التالي.
az spring app list --output tableتنتج عن هذا الأمر مخرجات مشابهة للمثال التالي:
Name Location ResourceGroup Production Deployment Public Url Provisioning Status CPU Memory Running Instance Registered Instance Persistent Storage ----------------- ---------- --------------- ----------------------- --------------------------------------------------- --------------------- ----- -------- ------------------ --------------------- -------------------- api-gateway eastus xxxxxx-sp default https://<service name>-api-gateway.azuremicroservices.io Succeeded 1 2 1/1 1/1 - customers-service eastus <service name> default Succeeded 1 2 1/1 1/1 -
تحقق من الخدمات
الوصول api-gateway ومن customers-service مستعرض مع عنوان Url العام الموضح سابقا، بتنسيق https://<service name>-api-gateway.azuremicroservices.io.
تلميح
لاستكشاف مشاكل النشر وإصلاحها، يمكنك استخدام الأمر التالي للحصول على سجلات تدفق في الوقت الحقيقي كلما كان التطبيق قيد التشغيل az spring app logs --name <app name> --follow.
انشر تطبيقات إضافية
لتشغيل تطبيق PetClinic مع جميع الميزات مثل خادم المسؤول والزيارات والأطباء البيطريين، انشر التطبيقات الأخرى بالأوامر التالية:
az spring app create \
--name admin-server \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi \
--assign-endpoint
az spring app create \
--name vets-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app create \
--name visits-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app deploy \
--name admin-server \
--runtime-version Java_17 \
--artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name vets-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name visits-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
تنظيف الموارد
إذا كنت تخطط لمواصلة العمل بالبدايات السريعة والبرامج التعليمية اللاحقة، فقد ترغب في ترك هذه الموارد في مكانها. يمكنك حذف مجموعة الموارد عند انتهاء حاجتك إليها، وهذا يؤدي إلى حذف الموارد الموجودة في مجموعة الموارد. لحذف مجموعة الموارد باستخدام Azure CLI، استخدم الأوامر التالية:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."