Preparar um aplicativo para implantação no Azure Spring Apps
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano Standard de consumo 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 mais informações, confira Migrar o plano Standard de consumo e dedicado dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Este artigo se aplica ao: ✔️ nível Básico/Standard ✔️ nível 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 Steeltoe do .NET Core no Azure Spring Apps. Para saber como implantar um aplicativo no Azure Spring Apps, confira Implantar seu primeiro aplicativo Spring Boot no Azure Spring Apps.
Observação
O suporte do Steeltoe para o Azure Spring Apps é oferecido atualmente como uma versão prévia pública. As ofertas de visualização pública permitem que os clientes experimentem os novos recursos antes do lançamento oficial. Os serviços e recursos de visualização pública não são destinados ao uso em produção. Para obter mais informações sobre o suporte durante as versões prévias, confira as perguntas frequentes ou registre uma Solicitação de suporte.
Versões suportadas
O Azure Spring Apps dá suporte a:
- .NET Core 3.1
- Steeltoe 2.4 e 3.0
Dependências
Para 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 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 Program.Main
, chame o método UseAzureSpringCloudService
.
Para o Steeltoe 2.4.4, chame UseAzureSpringCloudService
depois de ConfigureWebHostDefaults
e depois de AddConfigServer
se ele for chamado:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Para Steeltoe 3.0.0, chame UseAzureSpringCloudService
antes de ConfigureWebHostDefaults
e antes de códigos de configuração do Steeltoe:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Habilitar descoberta de serviço do servidor Eureka
Observação
O Eureka não é aplicável ao plano Enterprise. Se estiver usando o plano Enterprise, confira Usar o registro de serviço.
Na fonte de configuração que será usada quando o aplicativo for executado nos Aplicativos Spring do Azure, defina spring.application.name
com o mesmo nome que o aplicativo dos Aplicativos Spring do Azure no qual o projeto será implantado.
Por exemplo, se você implantar um projeto do .NET chamado 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 descoberta de serviço
Para chamar um serviço usando a descoberta de serviço do servidor Eureka, faça solicitações HTTP para http://<app_name>
, onde app_name
é o valor do spring.application.name
do aplicativo de destino. Por exemplo, o seguinte código chama o serviço 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]),
};
}
Este artigo mostra como preparar um aplicativo Java Spring existente para implantação no Azure Spring Apps. Se configurado corretamente, o Azure Spring Apps fornecerá serviços robustos para monitorar, dimensionar e atualizar seu aplicativo Java Spring.
Antes de executar este exemplo, experimente o guia de 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, confira a seção Runtime Java e versões do sistema operacional 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 Spring Boot e Spring Cloud no arquivo POM do aplicativo, conforme mostrado nas seções a seguir.
Os Aplicativos Spring do Azure darão suporte à última versão principal do Spring Boot ou Spring Cloud a partir de 30 dias após seu lançamento. Os Aplicativos Spring do Azure dão suporte à versão secundária mais recente assim que ela é lançada. Você pode obter as versões Spring Boot com suporte a partir de Versões Spring Boot e versões Spring Cloud a partir de Versões Spring Cloud.
A seguinte tabela lista as combinações do Spring Boot e do Spring Cloud compatíveis:
Versão do Spring Boot | Versão do Spring Cloud | Fim do suporte |
---|---|---|
3.2.x | 2023.0.x, também conhecida como Leyton | 23/11/2024 |
3.1.x | 2022.0.3+, também conhecida como Kilburn | 18/05/2024 |
3.0.x | 2022.0.3+, também conhecida como Kilburn | 24/11/2023 |
2.7.x | 2021.0.3+, também conhecida como Jubilee | 24/11/2023 |
Para obter mais informações, consulte as seguintes páginas:
- Suporte de versão para Java, Spring Boot e muito mais
- Suporte do Spring Boot
- Suporte do Spring Cloud Config
- Suporte do Spring Cloud Netflix
- Como adicionar o Spring Cloud a um aplicativo Spring Boot existente
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 precisará incluir as seguintes dependências em seu aplicativo. Você poderá descartar algumas dessas dependências se não precisar de recursos correspondentes para os aplicativos específicos.
Registro do Serviço
Para usar o serviço gerenciado Registro de Serviço do Azure, inclua a dependência spring-cloud-starter-netflix-eureka-client
no arquivo 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 o aplicativo. Os aplicativos podem se registrar por conta própria no servidor do Registro de Serviço e descobrir outros microsserviços dependentes.
Anotação EnableDiscoveryClient
Adicione a anotação a seguir ao código-fonte do aplicativo.
@EnableDiscoveryClient
Por exemplo, confira 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 dependência spring-cloud-config-client
na seção de 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 configuração de inicialização. Caso contrário, o aplicativo deixará de funcionar com o Servidor de Configuração.
Métricas
Inclua a dependência spring-boot-starter-actuator
na seção de dependências do arquivo 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. Visualize as métricas usando o portal do Azure.
Aviso
Especifique spring.jmx.enabled=true
na propriedade de configuração. Caso contrário, as métricas não poderão ser visualizadas no portal do Azure.
Confira também
- Analisar as métricas e os logs do aplicativo
- Configurar seu Servidor de Configuração
- Guia de Início Rápido do Spring
- Documentação do Spring Boot
Próximas etapas
Neste artigo, você aprendeu a configurar o aplicativo Spring Java para implantação no Azure Spring Apps. Para saber como configurar uma instância de servidor de configuração, confira Configurar uma instância de servidor de configuração.
Mais exemplos estão disponíveis no GitHub: Exemplos do Azure Spring Apps.