Preparar um aplicativo para implantação no Azure Spring Apps

Nota

Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns lugares por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.

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 comercial
3.2.x 2023.0.x também conhecido como Leyton 2026-02-23
3.1.x 2022.0.3+ também conhecido como Kilburn 2025-08-18
3.0.x 2022.0.3+ também conhecido como Kilburn 2025-02-24
2.7.x 2021.0.3+ também conhecido como Jubileu 2025-08-24
2.6.x 2021.0.3+ também conhecido como Jubileu 2024-02-24

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 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 no plano Enterprise, use o Application Configuration Service for VMware Tanzu, que é um dos componentes proprietários do VMware Tanzu. O Application Configuration Service for Tanzu é nativo do Kubernetes e diferente do Spring Cloud Config Server. O Application Configuration Service for Tanzu permite o gerenciamento de recursos ConfigMap nativos do Kubernetes que são preenchidos a partir de propriedades definidas em um ou mais repositórios Git.

No plano Enterprise, não há o Spring Cloud Config Server, mas você pode usar o Application Configuration Service for Tanzu para gerenciar configurações centralizadas. Para obter mais informações, consulte Usar o Serviço de Configuração de Aplicativo para Tanzu

Para usar o Serviço de Configuração de Aplicativo para Tanzu, execute as seguintes etapas para cada um dos seus aplicativos:

  1. Adicione uma associação explícita de aplicativo para declarar que seu aplicativo precisa usar o Serviço de Configuração de Aplicativo para Tanzu.

    Nota

    Ao alterar o status de vinculação/desvinculação, você deve reiniciar ou reimplantar o aplicativo para que a alteração entre em vigor.

  2. Defina padrões de arquivo de configuração. Os padrões de arquivo de configuração permitem que você escolha qual aplicativo e perfil o aplicativo usa. Para obter mais informações, consulte a seção Padrão de Usar o Serviço de Configuração de Aplicativo para 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 exemplo a seguir:

       az spring app deploy \
           --name <app-name> \
           --artifact-path <path-to-your-JAR-file> \
           --config-file-pattern <config-file-pattern>
    

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

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.