Menyiapkan aplikasi untuk penyebaran di Azure Spring Apps
Catatan
Paket Basic, Standard, dan Enterprise tidak digunakan lagi mulai pertengahan Maret 2025, dengan periode penghentian 3 tahun. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.
Konsumsi Standar dan paket khusus akan ditolak mulai 30 September 2024, dengan pematian lengkap setelah enam bulan. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat Memigrasikan konsumsi Azure Spring Apps Standard dan paket khusus ke Azure Container Apps.
Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise
Artikel ini menunjukkan cara menyiapkan aplikasi Steeltoe yang sudah ada untuk penyebaran ke Azure Spring Apps. Azure Spring Apps menyediakan layanan yang tangguh untuk menghosting, memantau, menskalakan, dan memperbarui aplikasi Steeltoe.
Artikel ini menjelaskan dependensi, konfigurasi, dan kode yang diperlukan untuk menjalankan aplikasi Steeltoe .NET Core di Azure Spring Apps. Untuk informasi tentang cara menyebarkan aplikasi ke Azure Spring Apps, lihat Menyebarkan aplikasi Spring Boot pertama Anda di Azure Spring Apps.
Catatan
Dukungan Steeltoe untuk Azure Spring Apps saat ini ditawarkan sebagai pratinjau publik. Penawaran pratinjau publik memungkinkan Anda bereksperimen dengan fitur baru sebelum rilis resminya. Fitur dan layanan pratinjau publik tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut tentang dukungan selama pratinjau, lihat FAQ atau ajukan Permintaan dukungan.
Versi yang didukung
Azure Spring Apps mendukung:
- .NET Core 3.1
- Steeltoe 2.4 dan 3.0
Dependensi
Untuk Steeltoe 2.4, tambahkan paket Microsoft.Azure.SpringCloud.Client 1.x.x terbaru ke file proyek:
<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>
Untuk Steeltoe 3.0, tambahkan paket Microsoft.Azure.SpringCloud.Client 2.x.x terbaru ke file proyek:
<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>
Memperbarui Program.cs
Dalam metode Program.Main
, panggil metode UseAzureSpringCloudService
.
Untuk Steeltoe 2.4.4, panggil UseAzureSpringCloudService
setelah ConfigureWebHostDefaults
dan setelah AddConfigServer
jika dipanggil:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Untuk Steeltoe 3.0.0, panggil UseAzureSpringCloudService
sebelum ConfigureWebHostDefaults
dan sebelum kode konfigurasi Steeltoe apa pun:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Mengaktifkan penemuan layanan Eureka Server
Catatan
Eureka tidak berlaku untuk paket Enterprise. Jika Anda menggunakan paket Enterprise, lihat Menggunakan Service Registry.
Di sumber konfigurasi yang digunakan saat aplikasi berjalan di Azure Spring Apps, atur spring.application.name
ke nama yang sama dengan aplikasi Azure Spring Apps tempat proyek disebarkan.
Misalnya, jika Anda menyebarkan proyek .NET bernama EurekaDataProvider
ke aplikasi Azure Spring Apps bernama planet-weather-provider
, file appSettings.json harus menyertakan JSON berikut:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Menggunakan penemuan layanan
Untuk memanggil layanan menggunakan penemuan layanan Eureka Server, buat permintaan HTTP ke http://<app_name>
di mana app_name
merupakan nilai spring.application.name
dari aplikasi target. Contohnya, kode berikut memanggil layanan 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]),
};
}
Artikel ini menunjukkan cara menyiapkan aplikasi Java Spring yang sudah ada untuk penyebaran ke Azure Spring Apps. Jika dikonfigurasi dengan benar, Azure Spring Apps menyediakan layanan yang tangguh untuk memantau, menskalakan, dan memperbarui aplikasi Java Spring Anda.
Sebelum menjalankan contoh ini, Anda dapat mencoba mulai cepat dasar.
Contoh lain menjelaskan cara menyebarkan aplikasi ke Azure Spring Apps saat file POM dikonfigurasi.
Artikel ini menjelaskan dependensi yang diperlukan dan cara menambahkannya ke file POM.
Versi Java Runtime
Untuk detailnya, lihat bagian runtime Java dan versi OS dari FAQ Azure Spring Apps.
Versi Spring Boot dan Spring Cloud
Untuk menyiapkan aplikasi Spring Boot yang ada untuk penyebaran ke Azure Spring Apps, sertakan dependensi Spring Boot dan Spring Cloud dalam file POM aplikasi seperti yang ditunjukkan di bagian berikut.
Azure Spring Apps mendukung versi utama Spring Boot atau Spring Cloud terbaru mulai dari 30 hari setelah rilis. Azure Spring Apps mendukung versi minor terbaru segera setelah dirilis. Anda bisa mendapatkan versi Spring Boot yang didukung dari Rilis Spring Boot dan versi Spring Cloud dari Rilis Spring Cloud.
Tabel berikut mencantumkan kombinasi Spring Boot dan Spring Cloud yang didukung:
Versi Spring Boot | Versi Spring Cloud | Akhir dukungan |
---|---|---|
3.2.x | 2023.0.x juga dikenal sebagai Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ juga dikenal sebagai Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ juga dikenal sebagai Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+ juga dikenal sebagai Jubilee | 2023-11-24 |
Untuk informasi selengkapnya, lihat halaman berikut:
- Dukungan versi untuk Java, Spring Boot, dan banyak lagi
- Dukungan Spring Boot
- Dukungan Spring Cloud Config
- Dukungan Spring Cloud Netflix
- Menambahkan Spring Cloud Ke Aplikasi Spring Boot yang Ada
Dependensi lain yang disarankan untuk mengaktifkan fitur Azure Spring Apps
Untuk mengaktifkan fitur bawaan Azure Spring Apps dari registri layanan hingga pelacakan terdistribusi, Anda juga harus menyertakan dependensi berikut dalam aplikasi Anda. Anda dapat melepaskan beberapa dependensi ini jika tidak memerlukan fitur yang sesuai untuk aplikasi tertentu.
Registri Layanan
Untuk menggunakan layanan Azure Service Registry terkelola, sertakan dependensi spring-cloud-starter-netflix-eureka-client
dalam file pom.xml seperti yang ditunjukkan di sini:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Titik akhir server Service Registry secara otomatis dimasukkan sebagai variabel lingkungan dengan aplikasi Anda. Aplikasi dapat mendaftarkan secara mandiri ke server Service Registry dan menemukan aplikasi dependen lain.
Anotasi EnableDiscoveryClient
Tambahkan anotasi berikut ke kode sumber aplikasi.
@EnableDiscoveryClient
Untuk contoh anotasi, lihat aplikasi piggymetrics dari contoh sebelumnya:
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);
}
}
Konfigurasi terdistribusi
Untuk mengaktifkan konfigurasi terdistribusi, sertakan dependensi spring-cloud-config-client
berikut di bagian dependensi file pom.xml Anda:
<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>
Peringatan
Jangan tentukan spring.cloud.config.enabled=false
dalam konfigurasi bootstrap Anda. Jika tidak, aplikasi Anda berhenti bekerja dengan Config Server.
Metrik
Sertakan dependensi spring-boot-starter-actuator
di bagian dependensi file pom.xml Anda seperti yang ditunjukkan di sini:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Metrik secara berkala ditarik dari titik akhir JMX. Anda dapat memvisualisasikan metrik menggunakan portal Azure.
Peringatan
Anda harus menentukan spring.jmx.enabled=true
di properti konfigurasi Anda. Jika tidak, metrik tidak dapat divisualisasikan di portal Microsoft Azure.
Lihat juga
- Menganalisis log dan metrik aplikasi
- Menyiapkan Config Server Anda
- Panduan Mulai Cepat Spring
- Dokumentasi Spring Boot
Langkah berikutnya
Dalam artikel ini, Anda mempelajari cara mengonfigurasi aplikasi Java Spring untuk penyebaran ke Azure Spring Apps. Untuk mempelajari cara menyiapkan instans Config Server, lihat Menyiapkan instans Config Server.
Contoh lainnya tersedia di GitHub: Contoh Azure Spring Apps.