Preparare un'applicazione per la distribuzione in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
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.
Nel metodo Program.Main
chiamare il metodo UseAzureSpringCloudService
.
Per Steeltoe 2.4.4, chiamare 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 di 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 del servizio.
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-provider
, il file appSettings.json 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 di spring.application.name
dell'app di destinazione. Ad esempio, il codice seguente chiama il servizio 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]),
};
}
Questo articolo illustra come preparare un'applicazione Java Spring esistente per la distribuzione in Azure Spring Apps. Se correttamente configurato, Azure Spring Apps offre servizi affidabili per il monitoraggio, il ridimensionamento e l'aggiornamento dell'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 viene configurato il file POM.
Questo articolo descrive le dipendenze necessarie e spiega come aggiungerle al file POM.
Versione del runtime Java
Per informazioni dettagliate, vedere la sezione Runtime e versioni del sistema operativo Java nelle 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 di 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 da Versioni di Spring Boot e Spring Cloud da Versioni 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 |
---|---|---|
3.2.x | 2023.0.x, nota anche come Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ nota anche come Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ nota anche come Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+, nota anche come Jubilee | 2023-11-24 |
Per ulteriori informazioni, vedere i seguenti argomenti:
- Supporto della versione per Java, Spring Boot e altro
- Supporto Spring Boot
- Supporto di Spring Cloud Config
- Supporto di Spring Cloud Netflix
- Aggiunta di Spring Cloud a un'applicazione Spring Boot esistente
Altre dipendenze consigliate per abilitare le funzionalità di Azure Spring Apps
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 servizi di Azure gestito, includere la dipendenza spring-cloud-starter-netflix-eureka-client
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 Service Registry 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, includere la dipendenza spring-cloud-config-client
seguente nella sezione delle dipendenze del file pom.xml:
<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>
Avviso
Non specificare spring.cloud.config.enabled=false
nella configurazione bootstrap. In caso contrario, l'applicazione non funzionerà più con Config Server.
Metrica
Includere la dipendenza spring-boot-starter-actuator
nella sezione delle dipendenze del file 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 nel portale di Azure.
Vedi anche
- Analizzare i log e le metriche dell'applicazione
- Configurare Config Server
- Guida di avvio rapido per Spring
- Documentazione di Spring Boot
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 Azure Spring Apps.