Share via


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:

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:

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

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

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.