Preparare un'applicazione per la distribuzione in Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise

Questo articolo illustra come preparare un'applicazione Steeltoe esistente per la distribuzione in Azure Spring Apps. Azure Spring Apps offre servizi affidabili per ospitare, monitorare, ridimensionare e aggiornare un'app Steeltoe.

Questo articolo illustra le dipendenze, la configurazione e il codice necessari per eseguire un'app .NET Core Steeltoe in Azure Spring Apps. Per informazioni su come distribuire un'applicazione in Azure Spring Apps, vedere Distribuire la prima app Spring Boot in Azure Spring Apps.

Nota

Il supporto di Steeltoe per Azure Spring Apps è attualmente disponibile come anteprima pubblica. Le offerte di anteprima pubblica consentono ai clienti di sperimentare le nuove funzionalità prima del rilascio della versione ufficiale. I servizi e le funzionalità di anteprima pubblica non sono destinati all'uso in produzione. Per altre informazioni sul supporto durante le anteprime, vedere le domande frequenti o inviare una richiesta di supporto.

Versioni supportate

Azure Spring Apps supporta:

  • .NET Core 3.1
  • Steeltoe 2.4 e 3.0

Dipendenze

Per Steeltoe 2.4, aggiungere il pacchetto Microsoft.Azure.SpringCloud.Client 1.x.x più recente al file di progetto:

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

Per Steeltoe 3.0, aggiungere il pacchetto Microsoft.Azure.SpringCloud.Client 2.x.x più recente al file di progetto:

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

Aggiornare Program.cs.

Program.Main Nel metodo chiamare il UseAzureSpringCloudService metodo .

Per Steeltoe 2.4.4, chiama UseAzureSpringCloudService dopo ConfigureWebHostDefaults e dopo AddConfigServer se viene chiamato:

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

Per Steeltoe 3.0.0, chiamare UseAzureSpringCloudService prima ConfigureWebHostDefaults e prima di qualsiasi codice di configurazione steeltoe:

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

Abilitare l'individuazione del servizio Eureka Server

Nota

Eureka non è applicabile al piano Enterprise. Se si usa il piano Enterprise, vedere Usare il Registro di sistema dei servizi.

Nell'origine di configurazione usata quando l'app viene eseguita in Azure Spring Apps, impostare spring.application.name sullo stesso nome dell'app Azure Spring Apps in cui viene distribuito il progetto.

Ad esempio, se si distribuisce un progetto .NET denominato EurekaDataProvider in un'app Azure Spring Apps denominata planet-weather-providerapp Impostazioni.json file deve includere il codice JSON seguente:

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

Usare l'individuazione dei servizi

Per chiamare un servizio usando l'individuazione del servizio Eureka Server, effettuare richieste HTTP a http://<app_name> dove app_name è il valore dell'app di spring.application.name destinazione. Ad esempio, il codice seguente chiama il planet-weather-provider servizio:

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

Questo articolo illustra come preparare un'applicazione Java Spring esistente per la distribuzione in Azure Spring Apps. Se configurata correttamente, Azure Spring Apps offre servizi affidabili per monitorare, ridimensionare e aggiornare l'applicazione Java Spring.

Prima di eseguire questo esempio, è possibile provare la guida di avvio rapido di base.

Altri esempi illustrano come distribuire un'applicazione in Azure Spring Apps quando il file POM è configurato.

Questo articolo descrive le dipendenze necessarie e spiega come aggiungerle al file POM.

Versione del runtime Java

Per informazioni dettagliate, vedere la sezione Versioni del runtime e del sistema operativo Java delle domande frequenti su Azure Spring Apps.

Versioni di Spring Boot e Spring Cloud

Per preparare un'applicazione Spring Boot esistente per la distribuzione in Azure Spring Apps, includere le dipendenze spring boot e Spring Cloud nel file POM dell'applicazione, come illustrato nelle sezioni seguenti.

Azure Spring Apps supporta la versione principale di Spring Boot o Spring Cloud più recente a partire da 30 giorni dopo il rilascio. Azure Spring Apps supporta la versione secondaria più recente non appena viene rilasciata. È possibile ottenere versioni di Spring Boot supportate dalle versioni spring boot e dalle versioni spring cloud di Spring Cloud.

Le combinazioni supportate di Spring Boot e Spring Cloud sono indicate nella tabella seguente:

Versione di Spring Boot Versione di Spring Cloud Fine del supporto commerciale
3.2.x 2023.0.x noto anche come Leyton 2026-02-23
3.1.x 2022.0.3+ noto anche come Kilburn 2025-08-18
3.0.x 2022.0.3+ noto anche come Kilburn 2025-02-24
2.7.x 2021.0.3+ noto anche come Anniversario 2025-08-24
2.6.x 2021.0.3+ noto anche come Anniversario 2024-02-24

Per ulteriori informazioni, vedere i seguenti argomenti:

Per abilitare le funzionalità predefinite di Azure Spring Apps dal registro dei servizi alla traccia distribuita, è necessario includere anche le dipendenze seguenti nell'applicazione. È possibile eliminare alcune di queste dipendenze se non sono necessarie le funzionalità corrispondenti per le app specifiche.

Service Registry

Per usare il servizio Registro di sistema dei servizi di Azure gestito, includere la spring-cloud-starter-netflix-eureka-client dipendenza nel file pom.xml , come illustrato di seguito:

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

L'endpoint del server Service Registry verrà inserito automaticamente come variabile di ambiente nell'app. Le applicazioni possono registrarsi con il server del Registro di sistema del servizio e individuare altre applicazioni dipendenti.

Annotazione EnableDiscoveryClient

Aggiungere l'annotazione seguente al codice sorgente dell'applicazione.

@EnableDiscoveryClient

Vedere ad esempio l'applicazione piggymetrics negli esempi precedenti:

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

Configurazione distribuita

Per abilitare la configurazione distribuita nel piano Enterprise, usare il servizio di configurazione dell'applicazione per VMware Tanzu, uno dei componenti proprietari VMware Tanzu. Il servizio di configurazione delle applicazioni per Tanzu è nativo di Kubernetes e diverso da Spring Cloud Config Server. Il servizio di configurazione delle applicazioni per Tanzu consente la gestione delle risorse ConfigMap native di Kubernetes popolate da proprietà definite in uno o più repository Git.

Nel piano Enterprise non esiste un server di configurazione Spring Cloud, ma è possibile usare il servizio di configurazione delle applicazioni per Tanzu per gestire le configurazioni centralizzate. Per altre informazioni, vedere Usare il servizio di configurazione dell'applicazione per Tanzu

Per usare il servizio di configurazione delle applicazioni per Tanzu, seguire questa procedura per ognuna delle app:

  1. Aggiungere un'associazione esplicita dell'app per dichiarare che l'app deve usare il servizio di configurazione dell'applicazione per Tanzu.

    Nota

    Quando modifichi lo stato bind/unbind, devi riavviare o ridistribuire l'app per rendere effettiva la modifica.

  2. Impostare i modelli di file di configurazione. I modelli di file di configurazione consentono di scegliere l'applicazione e il profilo usati dall'app. Per altre informazioni, vedere la sezione Pattern (Modello) di Use Application Configuration Service for Tanzu (Usare il servizio di configurazione delle applicazioni per Tanzu).

    Un'altra opzione consiste nell'impostare i modelli di file di configurazione contemporaneamente alla distribuzione dell'app, come illustrato nell'esempio seguente:

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

Metrica

Includere la spring-boot-starter-actuator dipendenza nella sezione dipendenze del file di pom.xml , come illustrato di seguito:

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

Viene periodicamente eseguito il pull delle metriche dagli endpoint JMX. È possibile visualizzare le metriche usando il portale di Azure.

Avviso

È necessario specificare spring.jmx.enabled=true nella proprietà di configurazione. In caso contrario, le metriche non possono essere visualizzate nella portale di Azure.

Vedi anche

Passaggi successivi

In questo articolo si è appreso come configurare l'applicazione Java Spring per la distribuzione in Azure Spring Apps. Per informazioni su come configurare un'istanza del server di configurazione, vedere Configurare un'istanza del server di configurazione.

Altri esempi sono disponibili in GitHub: Esempi di App Azure Spring.