Bagikan melalui


Menyiapkan aplikasi untuk penyebaran di Azure Spring Apps

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

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 komersial
3.2.x 2023.0.x juga dikenal sebagai Leyton 2026-02-23
3.1.x 2022.0.3+ juga dikenal sebagai Kilburn 2025-08-18
3.0.x 2022.0.3+ juga dikenal sebagai Kilburn 2025-02-24
2.7.x 2021.0.3+ juga dikenal sebagai Jubilee 2025-08-24
2.6.x 2021.0.3+ juga dikenal sebagai Jubilee 2024-02-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 dalam paket Enterprise, gunakan Application Configuration Service untuk VMware Tanzu, yang merupakan salah satu komponen VMware Tanzu eksklusif. Application Configuration Service untuk Tanzu adalah Kubernetes-native, dan berbeda dari Spring Cloud Config Server. Layanan Konfigurasi Aplikasi untuk Tanzu memungkinkan pengelolaan sumber daya ConfigMap Kubernetes-native yang diisi dari properti yang ditentukan dalam satu atau beberapa repositori Git.

Dalam paket Enterprise, tidak ada Spring Cloud Config Server, tetapi Anda dapat menggunakan Application Configuration Service untuk Tanzu untuk mengelola konfigurasi terpusat. Untuk informasi selengkapnya, lihat Menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu

Untuk menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu, lakukan langkah-langkah berikut untuk setiap aplikasi Anda:

  1. Tambahkan pengikatan aplikasi eksplisit untuk menyatakan bahwa aplikasi Anda perlu menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu.

    Catatan

    Saat mengubah status ikat/lepas, Anda harus menghidupkan ulang atau menyebarkan ulang aplikasi agar perubahan berlaku.

  2. Atur pola file konfigurasi. Pola file konfigurasi memungkinkan Anda memilih aplikasi dan profil mana yang digunakan aplikasi. Untuk informasi selengkapnya, lihat bagian Pola pada Menggunakan Layanan Konfigurasi Aplikasi untuk Tanzu.

    Opsi lain adalah mengatur pola file konfigurasi secara bersamaan dengan penyebaran aplikasi Anda, seperti yang ditunjukkan pada contoh berikut:

       az spring app deploy \
           --name <app-name> \
           --artifact-path <path-to-your-JAR-file> \
           --config-file-pattern <config-file-pattern>
    

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.