Preparar um aplicativo para implantação no Azure Spring Apps
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo aplica-se a: ✔️ Basic/Standard ✔️ Enterprise
Este artigo mostra como preparar um aplicativo Steeltoe existente para implantação no Azure Spring Apps. O Azure Spring Apps fornece serviços robustos para hospedar, monitorar, dimensionar e atualizar um aplicativo Steeltoe.
Este artigo explica as dependências, a configuração e o código necessários para executar um aplicativo .NET Core Steeltoe no Azure Spring Apps. Para obter informações sobre como implantar um aplicativo no Azure Spring Apps, consulte Implantar seu primeiro aplicativo Spring Boot no Azure Spring Apps.
Nota
O suporte do Steeltoe para Azure Spring Apps é atualmente oferecido como uma visualização pública. As ofertas de visualização pública permitem que os clientes experimentem novos recursos antes do lançamento oficial. Os recursos e serviços de visualização pública não se destinam ao uso em produção. Para obter mais informações sobre suporte durante as visualizações, consulte as Perguntas frequentes ou arquive uma solicitação de suporte.
Versões suportadas
O Azure Spring Apps suporta:
- .NET Core 3.1
- Dedo de aço 2.4 e 3.0
Dependências
Para o Steeltoe 2.4, adicione o pacote Microsoft.Azure.SpringCloud.Client 1.x.x mais recente ao arquivo de projeto:
<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>
Para o Steeltoe 3.0, adicione o pacote Microsoft.Azure.SpringCloud.Client 2.x.x mais recente ao arquivo de projeto:
<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>
Atualizar Program.cs
No método, chame o Program.Main
UseAzureSpringCloudService
método.
Para o Steeltoe 2.4.4, ligue UseAzureSpringCloudService
depois ConfigureWebHostDefaults
e depois AddConfigServer
se for chamado:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Para o Steeltoe 3.0.0, ligue UseAzureSpringCloudService
antes ConfigureWebHostDefaults
e antes de qualquer código de configuração do Steeltoe:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Habilitar a descoberta de serviço do Eureka Server
Nota
O Eureka não é aplicável ao plano Enterprise. Se você estiver usando o plano Enterprise, consulte Usar o Registro de Serviço.
Na fonte de configuração usada quando o aplicativo é executado no Azure Spring Apps, defina spring.application.name
com o mesmo nome do aplicativo Azure Spring Apps no qual o projeto é implantado.
Por exemplo, se você implantar um projeto .NET nomeado EurekaDataProvider
para um aplicativo Azure Spring Apps chamado planet-weather-provider
o arquivo appSettings.json deverá incluir o seguinte JSON:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Usar a descoberta de serviço
Para chamar um serviço usando a descoberta de serviço do Eureka Server, faça solicitações HTTP para http://<app_name>
onde app_name
está o valor do aplicativo de spring.application.name
destino. Por exemplo, o código a seguir chama o planet-weather-provider
serviço:
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]),
};
}
Este artigo mostra como preparar um aplicativo Java Spring existente para implantação no Azure Spring Apps. Se configurado corretamente, o Azure Spring Apps fornece serviços robustos para monitorar, dimensionar e atualizar seu aplicativo Java Spring.
Antes de executar este exemplo, você pode tentar o início rápido básico.
Outros exemplos explicam como implantar um aplicativo no Azure Spring Apps quando o arquivo POM é configurado.
Este artigo explica as dependências necessárias e como adicioná-las ao arquivo POM.
Versão do Java Runtime
Para obter detalhes, consulte a seção Java runtime and OS versions das Perguntas frequentes sobre o Azure Spring Apps.
Versões Spring Boot e Spring Cloud
Para preparar um aplicativo Spring Boot existente para implantação no Azure Spring Apps, inclua as dependências do Spring Boot e do Spring Cloud no arquivo POM do aplicativo, conforme mostrado nas seções a seguir.
O Azure Spring Apps suporta a versão principal mais recente do Spring Boot ou do Spring Cloud a partir de 30 dias após o seu lançamento. O Azure Spring Apps suporta a versão secundária mais recente assim que é lançada. Você pode obter versões suportadas do Spring Boot a partir do Spring Boot Releases e versões do Spring Cloud do Spring Cloud Releases.
A tabela a seguir lista as combinações suportadas do Spring Boot e do Spring Cloud:
Versão Spring Boot | Versão Spring Cloud | Fim do suporte |
---|---|---|
3.2.x | 2023.0.x também conhecido como Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ também conhecido como Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ também conhecido como Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+ também conhecido como Jubileu | 2023-11-24 |
Para obter mais informações, consulte as seguintes páginas:
- Suporte de versão para Java, Spring Boot e muito mais
- Suporte para Spring Boot
- Suporte ao Spring Cloud Config
- Suporte para Netflix no Spring Cloud
- Adicionando o Spring Cloud a um aplicativo existente do Spring Boot
Outras dependências recomendadas para habilitar os recursos do Azure Spring Apps
Para habilitar os recursos internos do Azure Spring Apps do registro de serviço para o rastreamento distribuído, você também precisa incluir as seguintes dependências em seu aplicativo. Você pode descartar algumas dessas dependências se não precisar dos recursos correspondentes para os aplicativos específicos.
Registo de Serviços
Para usar o serviço gerenciado do Registro de Serviço do Azure, inclua a spring-cloud-starter-netflix-eureka-client
dependência no arquivo de pom.xml , conforme mostrado aqui:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
O ponto de extremidade do servidor do Registro de Serviço é injetado automaticamente como variáveis de ambiente com seu aplicativo. Os aplicativos podem se registrar no servidor do Registro de Serviço e descobrir outros aplicativos dependentes.
Anotação EnableDiscoveryClient
Adicione a seguinte anotação ao código-fonte do aplicativo.
@EnableDiscoveryClient
Por exemplo, consulte o aplicativo piggymetrics de exemplos anteriores:
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);
}
}
Configuração distribuída
Para habilitar a configuração distribuída, inclua a seguinte spring-cloud-config-client
dependência na seção dependências do arquivo 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>
Aviso
Não especifique spring.cloud.config.enabled=false
na sua configuração de bootstrap. Caso contrário, seu aplicativo para de funcionar com o Config Server.
Métricas
Inclua a spring-boot-starter-actuator
dependência na seção dependências do seu arquivo de pom.xml , conforme mostrado aqui:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
As métricas são extraídas periodicamente dos pontos de extremidade JMX. Você pode visualizar as métricas usando o portal do Azure.
Aviso
Você deve especificar spring.jmx.enabled=true
em sua propriedade de configuração. Caso contrário, as métricas não poderão ser visualizadas no portal do Azure.
Consulte também
- Analise logs e métricas de aplicativos
- Configurar o Config Server
- Guia de início rápido da primavera
- Documentação do Spring Boot
Próximos passos
Neste artigo, você aprendeu como configurar seu aplicativo Java Spring para implantação no Azure Spring Apps. Para saber como configurar uma instância do Config Server, consulte Configurar uma instância do Config Server.
Mais exemplos estão disponíveis no GitHub: Azure Spring Apps Samples.