Bagikan melalui


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:

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

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.