Sdílet prostřednictvím


Příprava aplikace na nasazení v Azure Spring Apps

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek se vztahuje na: ✔️ Basic/Standard ✔️ Enterprise

Tento článek ukazuje, jak připravit existující aplikaci Steeltoe pro nasazení do Azure Spring Apps. Azure Spring Apps poskytuje robustní služby pro hostování, monitorování, škálování a aktualizaci aplikace Steeltoe.

Tento článek vysvětluje závislosti, konfiguraci a kód, které jsou potřeba ke spuštění aplikace .NET Core Steeltoe v Azure Spring Apps. Informace o nasazení aplikace do Azure Spring Apps najdete v tématu Nasazení první aplikace Spring Boot v Azure Spring Apps.

Poznámka:

Podpora Steeltoe pro Azure Spring Apps se v současné době nabízí jako veřejná verze Preview. Nabídky Public Preview umožňují zákazníkům experimentovat s novými funkcemi před oficiální verzí. Funkce a služby Ve verzi Public Preview nejsou určené pro produkční použití. Další informace o podpoře ve verzích Preview najdete v nejčastějších dotazech nebo vytvoření žádosti o podporu.

Podporované verze

Azure Spring Apps podporuje:

  • .NET Core 3.1
  • Steeltoe 2.4 a 3.0

Závislosti

Pro Steeltoe 2.4 přidejte do souboru projektu nejnovější balíček 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>

Pro Steeltoe 3.0 přidejte do souboru projektu nejnovější balíček 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>

Aktualizace Program.cs

Program.Main V metodě zavolejte metoduUseAzureSpringCloudService.

Pro Steeltoe 2.4.4, zavolejte UseAzureSpringCloudService za ConfigureWebHostDefaults a po AddConfigServer , pokud je volána:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer()
        .UseAzureSpringCloudService();

Pro Steeltoe 3.0.0 volejte UseAzureSpringCloudService před ConfigureWebHostDefaults a před jakýmkoli konfiguračním kódem Steeltoe:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseAzureSpringCloudService()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer();

Povolení zjišťování služby Serveru Eureka

Poznámka:

Eureka se nevztahuje na plán Enterprise. Pokud používáte plán Enterprise, přečtěte si téma Použití registru služeb.

Ve zdroji konfigurace, který se používá při spuštění aplikace v Azure Spring Apps, nastavte spring.application.name stejný název jako aplikace Azure Spring Apps, do které je projekt nasazený.

Pokud například nasadíte projekt .NET pojmenovaný EurekaDataProvider do aplikace Azure Spring Apps s názvem planet-weather-provider appSettings.json soubor by měl obsahovat následující JSON:

"spring": {
  "application": {
    "name": "planet-weather-provider"
  }
}

Použití zjišťování služeb

Pokud chcete volat službu pomocí zjišťování služby Serveru Eureka, nastavte požadavky HTTP na místo, kde http://<app_name> app_name je hodnota spring.application.name cílové aplikace. Například následující kód volá planet-weather-provider službu:

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]),
    };
}

Tento článek ukazuje, jak připravit existující aplikaci Java Spring pro nasazení do Azure Spring Apps. Pokud je služba Azure Spring Apps správně nakonfigurovaná, poskytuje robustní služby pro monitorování, škálování a aktualizaci aplikace Java Spring.

Před spuštěním tohoto příkladu můžete vyzkoušet základní rychlý start.

Další příklady vysvětlují, jak nasadit aplikaci do Azure Spring Apps při konfiguraci souboru POM.

Tento článek vysvětluje požadované závislosti a postup jejich přidání do souboru POM.

Verze modulu Java Runtime

Podrobnosti najdete v části Java Runtime a verze operačního systému v nejčastějších dotazech k Azure Spring Apps.

Verze Spring Boot a Spring Cloud

Pokud chcete připravit existující aplikaci Spring Boot pro nasazení do Azure Spring Apps, zahrňte do souboru POM aplikace závislosti Spring Boot a Spring Cloud, jak je znázorněno v následujících částech.

Azure Spring Apps podporuje nejnovější hlavní verzi Spring Boot nebo Spring Cloud počínaje 30 dny od vydání. Azure Spring Apps podporuje nejnovější podverzi hned po vydání. Podporované verze Spring Boot můžete získat z verzí Spring Boot a Spring Cloud z verzí Spring Cloud.

Následující tabulka uvádí podporované kombinace Spring Bootu a Spring Cloudu:

Verze Spring Bootu Verze Spring Cloudu Ukončení podpory
3.2.x 2023.0.x také známý jako Leyton 2024-11-23
3.1.x 2022.0.3+ také známý jako Kilburn 2024-05-18
3.0.x 2022.0.3+ také známý jako Kilburn 2023-11-24
2.7.x 2021.0.3+ také známý jako Jubilee 2023-11-24

Další informace najdete na následujících stránkách:

Pokud chcete povolit integrované funkce Azure Spring Apps z registru služeb do distribuovaného trasování, musíte do své aplikace zahrnout také následující závislosti. Některé z těchto závislostí můžete odstranit, pokud pro konkrétní aplikace nepotřebujete odpovídající funkce.

Registr služeb

Pokud chcete použít spravovanou službu Azure Service Registry, zahrňte závislost spring-cloud-starter-netflix-eureka-client do souboru pom.xml , jak je znázorněno tady:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

Koncový bod serveru Registru služby se automaticky vloží jako proměnné prostředí do vaší aplikace. Aplikace se můžou zaregistrovat na serveru Service Registry a zjišťovat další závislé aplikace.

Povolení poznámky EnableDiscoveryClient

Do zdrojového kódu aplikace přidejte následující poznámku.

@EnableDiscoveryClient

Podívejte se například na aplikaci piggymetrics z předchozích příkladů:

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);
    }
}

Distribuovaná konfigurace

Pokud chcete povolit distribuovanou konfiguraci, do části závislostí souboru pom.xml zahrňte následující spring-cloud-config-client závislost:

<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>

Upozorňující

Nezadávejte spring.cloud.config.enabled=false v konfiguraci bootstrap. Jinak aplikace přestane pracovat s konfiguračním serverem.

Metriky

spring-boot-starter-actuator Do části závislostí souboru pom.xml zahrňte závislost, jak je znázorněno tady:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Metriky se pravidelně natahují z koncových bodů JMX. Metriky můžete vizualizovat pomocí webu Azure Portal.

Upozorňující

Je nutné zadat spring.jmx.enabled=true ve vlastnosti konfigurace. Jinak se metriky nedají vizualizovat na webu Azure Portal.

Viz také

Další kroky

V tomto článku jste zjistili, jak nakonfigurovat aplikaci Java Spring pro nasazení do Azure Spring Apps. Informace o nastavení instance konfiguračního serveru najdete v tématu Nastavení instance konfiguračního serveru.

Další ukázky jsou k dispozici na GitHubu: Ukázky Azure Spring Apps.