Preparar um aplicativo para implantação no Azure Spring Apps
Observação
Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.
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 comercial |
---|---|---|
3.2.x | 2023.0.x, também conhecida como Leyton | 23/02/2026 |
3.1.x | 2022.0.3+, também conhecida como Kilburn | 18/08/2025 |
3.0.x | 2022.0.3+, também conhecida como Kilburn | 24/02/2025 |
2.7.x | 2021.0.3+, também conhecida como Jubilee | 24/08/2025 |
2.6.x | 2021.0.3+, também conhecida como Jubilee | 24/02/2024 |
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 na camada Enterprise, use o Serviço de Configuração do Aplicativo para VMware Tanzu, que é um dos componentes proprietários do VMware Tanzu. O Serviço de Configuração do Aplicativo para Tanzu é nativo do Kubernetes e totalmente diferente do Spring Cloud Config Server. O Application Configuration Service for Tanzu permite o gerenciamento de recursos do ConfigMap nativos do Kubernetes que são preenchidos com base em propriedades definidas em um ou mais repositórios Git.
Na camada Enterprise, não há nenhum Spring Cloud Config Server, mas você pode usar o Serviço de Configuração do Aplicativo para Tanzu para gerenciar configurações centralizadas. Para saber mais, confira Usar o Application Configuration Service for Tanzu
Para usar o Application Configuration Service for Tanzu, execute as seguintes etapas para cada um dos seus aplicativos:
Adicione uma associação de aplicativo explícita para declarar que o aplicativo precisa usar o Application Configuration Service for Tanzu.
Observação
Ao alterar o status de associar/desassociar, reinicie ou reimplante o aplicativo para que a alteração entre em vigor.
Defina os padrões do arquivo de configuração. Os padrões do arquivo de configuração permitem que você escolha qual aplicativo e perfil serão usados pelo aplicativo. Para saber mais, confira a seção Padrão de Usar o Application Configuration Service for Tanzu.
Outra opção é definir os padrões do arquivo de configuração ao mesmo tempo que a implantação do aplicativo, conforme mostrado no seguinte exemplo:
az spring app deploy \ --name <app-name> \ --artifact-path <path-to-your-JAR-file> \ --config-file-pattern <config-file-pattern>
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.