إعداد تطبيق للتوزيع في Azure Spring Apps
إشعار
سيتم إهمال الخطط الأساسية والقياسية والمؤسسة بدءا من منتصف مارس 2025، مع فترة تقاعد 3 سنوات. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع إعلان إيقاف Azure Spring Apps.
سيتم إهمال الاستهلاك القياسي والخطة المخصصة بدءا من 30 سبتمبر 2024، مع إيقاف التشغيل الكامل بعد ستة أشهر. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع ترحيل استهلاك Azure Spring Apps القياسي وخطة مخصصة إلى Azure Container Apps.
تنطبق هذه المقالة على: ✔️ Basic/Standard ✔️ Enterprise
توضح هذه المقالة كيفية تحضير تطبيق Steeltoe موجود للتوزيع في Azure Spring Apps. توفر تطبيقات Azure Spring خدمات قوية لاستضافة تطبيق Steeltoe ومراقبته وقياسه وتحديثه.
تشرح هذه المقالة التبعيات والتكوين والتعليمة البرمجية المطلوبة لتشغيل تطبيق .NET Core Steeltoe في Azure Spring Apps. للحصول على معلومات بشأن كيفية توزيع تطبيق في Azure Spring Apps، راجع توزيع تطبيق Spring Boot الأول في Azure Spring Apps.
إشعار
يتم تقديم دعم Steeltoe لتطبيقات Azure Spring حالياً كمعاينة عامة. تتيح عروض المعاينة العامة للعملاء تجربة الميزات الجديدة قبل إصدارها الرسمي. ميزات وخدمات المعاينة العامة غير مخصصة لاستخدامات الإنتاج. لمزيد من المعلومات حول الدعم أثناء المعاينة، راجع الأسئلة الشائعة أو ملف طلب دعم.
الإصدارات المدعومة
إن Azure Spring Apps تدعم:
- .NET Core 3.1
- Steeltoe 2.4 and 3.0
التبعيات
بالنسبة إلى Steel Toe 2.4، أضف أحدث حزمة Microsoft.Azure.SpringCloud.Client 1.x.x إلى ملف المشروع:
<ItemGroup>
<PackageReference Include="Microsoft.Azure.SpringCloud.Client" Version="1.0.0-preview.1" />
<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Extensions.Configuration.ConfigServerCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Management.TracingCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Management.ExporterCore" Version="2.4.4" />
</ItemGroup>
بالنسبة إلى Steel Toe 3.0، أضف أحدث حزمة Microsoft.Azure.SpringCloud.Client 2.x.x إلى ملف المشروع:
<ItemGroup>
<PackageReference Include="Microsoft.Azure.SpringCloud.Client" Version="2.0.0-preview.1" />
<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="3.0.0" />
<PackageReference Include="Steeltoe.Extensions.Configuration.ConfigServerCore" Version="3.0.0" />
<PackageReference Include="Steeltoe.Management.TracingCore" Version="3.0.0" />
</ItemGroup>
تحديث Program.cs
في الأسلوب Program.Main
، قم باستدعاء الأسلوب UseAzureSpringCloudService
.
بالنسبة إلى Steeltoe 2.4.4، اتصل بـUseAzureSpringCloudService
بعد ConfigureWebHostDefaults
وبعد AddConfigServer
إذا كان يسمى:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
بالنسبة إلى Steeltoe 3.0.0، اتصل بـUseAzureSpringCloudService
قبل ConfigureWebHostDefaults
وقبل أي التعليمة البرمجية تكوين Steeltoe:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
تفعيل اكتشاف خدمة Eureka Server
إشعار
لا ينطبق Eureka على خطة المؤسسة. إذا كنت تستخدم خطة المؤسسة، فشاهد استخدام سجل الخدمة.
في مصدر التكوين المستخدم عند تشغيل التطبيق في Azure Spring Apps، عين spring.application.name
على نفس اسم تطبيق Azure Spring Apps الذي يتم نشر المشروع عليه.
على سبيل المثال، إذا قمت بتوزيع مشروع NET. يسمى EurekaDataProvider
إلى تطبيق Azure Spring Apps المسمى planet-weather-provider
يجب أن يتضمن ملف appSettings.json JSON التالي:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
استخدم اكتشاف الخدمة
للاتصال بخدمة باستخدام اكتشاف خدمة Eureka Server، قم بإجراء طلبات HTTP إلى http://<app_name>
حيث app_name
هي قيمة spring.application.name
للتطبيق الهدف. على سبيل المثال، التعليمة البرمجية التالية تستدعي خدمة planet-weather-provider
:
using (var client = new HttpClient(discoveryHandler, false))
{
var responses = await Task.WhenAll(
client.GetAsync("http://planet-weather-provider/weatherforecast/mercury"),
client.GetAsync("http://planet-weather-provider/weatherforecast/saturn"));
var weathers = await Task.WhenAll(from res in responses select res.Content.ReadAsStringAsync());
return new[]
{
new KeyValuePair<string, string>("Mercury", weathers[0]),
new KeyValuePair<string, string>("Saturn", weathers[1]),
};
}
توضح هذه المقالة كيفية تحضير تطبيق Java Spring موجود للتوزيع في Azure Spring Apps. إذا تم تكوينه بشكل صحيح، فإن Azure Spring Apps توفر خدمات قوية لمراقبة تطبيق Java Spring وتوسيع نطاقه وتحديثه.
قبل تشغيل هذا المثال، يمكنك تجربة التشغيل السريع الأساسي.
توضح الأمثلة الأخرى كيفية توزيع تطبيق على Azure Spring Apps عند تكوين ملف POM.
تشرح هذه المقالة التبعيات المطلوبة وكيفية إضافتها إلى ملف POM.
إصدار Java Runtime
للحصول على تفاصيل، راجع قسم وقت تشغيل Java وإصدارات نظام التشغيل من الأسئلة المتداولة بشأن Azure Spring Apps.
إصدارات Spring Boot وSpring Cloud
لإعداد تطبيق Spring Boot موجود للتوزيع في Azure Spring Apps، قم بتضمين تبعيات Spring Boot وSpring Cloud في ملف POM للتطبيق كما هو موضح في الأقسام التالية.
تدعم Azure Spring Apps أحدث إصدار رئيسي من Spring Boot أو Spring Cloud بدءا من 30 يوما بعد إصداره. تدعم Azure Spring Apps أحدث إصدار ثانوي بمجرد إصداره. يمكنك الحصول على إصدارات Spring Boot المدعومة من Spring Boot Releases وإصدارات Spring Cloud من Spring Cloud Releases.
يسرد الجدول التالي مجموعات Spring Boot وSpring Cloud المدعومة:
إصدار Spring Boot | إصدار Spring Cloud | نهاية دعم |
---|---|---|
3.2.x | 2023.0.x المعروف أيضا باسم Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ المعروف أيضا باسم كيلبورن | 2024-05-18 |
3.0.x | 2022.0.3+ المعروف أيضا باسم كيلبورن | 2023-11-24 |
2.7.x | 2021.0.3+ المعروف أيضا باسم اليوبيل | 2023-11-24 |
لمزيد من المعلومات، راجع الصفحات التالية:
- دعم الإصدار ل Java وSpring Boot والمزيد
- دعم Spring Boot
- دعم Spring Cloud Config
- دعم Spring Cloud Netflix
- إضافة Spring Cloud إلى تطبيق Spring Boot موجود
تبعيات أخرى موصى بها لتمكين ميزات تطبيقات Azure Spring
لتمكين الميزات المضمنة في Azure Spring Apps من سجل الخدمة إلى التتبع الموزع، تحتاج أيضاً إلى تضمين التبعيات التالية في التطبيق الخاص بك. يمكنك إسقاط بعض هذه التبعيات إذا لم تكن بحاجة إلى ميزات مقابلة لتطبيقات معينة.
سجل الخدمة
لاستخدام خدمة سجل خدمة Azure المُدارة، قم بتضمين التبعية spring-cloud-starter-netflix-eureka-client
في ملف pom.xml كما هو موضح هنا:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
يتم إدخال نقطة نهاية خادم Service Registry تلقائياً كمتغيرات بيئة مع تطبيقك. يمكن للتطبيقات تسجيل نفسها في خادم سجل الخدمة واكتشاف التطبيقات الأخرى التابعة.
EnableDiscoveryClient التعليق التوضيحي
أضف التعليق التوضيحي التالي إلى التعليمة البرمجية المصدر للتطبيق.
@EnableDiscoveryClient
على سبيل المثال، راجع تطبيق Piggymetrics من الأمثلة السابقة:
package com.piggymetrics.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
التكوين الموزع
لتمكين التكوين الموزعة، قم بتضمين التبعية التالية spring-cloud-config-client
في قسم التبعيات لملف pom.xml :
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
تحذير
لا تحدد spring.cloud.config.enabled=false
في تكوين bootstrap الخاص بك. خلاف ذلك، يتوقف التطبيق الخاص بك عن العمل مع Config Server.
المقاييس
قم بتضمين spring-boot-starter-actuator
التبعية في قسم التبعيات بملف pom.xml كما هو موضح هنا:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
يتم سحب القياسات بشكل دوري من نقاط نهاية JMX. يمكنك تصور القياسات باستخدام مدخل Microsoft Azure.
تحذير
يجب عليك تحديد spring.jmx.enabled=true
في خاصية التكوين الخاصة بك. بخلاف ذلك، لا يمكن تصور القياسات في مدخل Microsoft Azure.
(راجع أيضًا )
الخطوات التالية
في هذه المقالة، تعلمت كيفية تكوين تطبيق Java Spring للتوزيع في Azure Spring Apps. لمعرفة كيفية إعداد مثيل خادم التكوين، راجع إعداد مثيل خادم التكوين.
يتوفر المزيد من العينات على GitHub: عينات Azure Spring Apps.