Share via


Förbereda ett program för distribution i Azure Spring Apps

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise

Den här artikeln visar hur du förbereder ett befintligt Steeltoe-program för distribution till Azure Spring Apps. Azure Spring Apps tillhandahåller robusta tjänster för att hantera, övervaka, skala och uppdatera en Steeltoe-app.

Den här artikeln beskriver de beroenden, konfigurationer och kod som krävs för att köra en .NET Core Steeltoe-app i Azure Spring Apps. Information om hur du distribuerar ett program till Azure Spring Apps finns i Distribuera din första Spring Boot-app i Azure Spring Apps.

Kommentar

Steeltoe-stöd för Azure Spring Apps erbjuds för närvarande som en offentlig förhandsversion. Med erbjudanden för offentlig förhandsversion kan kunder experimentera med nya funktioner innan de släpps officiellt. Funktioner och tjänster för offentlig förhandsversion är inte avsedda för produktionsanvändning. Mer information om support under förhandsversioner finns i Vanliga frågor och svar eller skicka en supportbegäran.

Versioner som stöds

Azure Spring Apps stöder:

  • .NET Core 3.1
  • Steeltoe 2.4 och 3.0

Beroenden

För Steeltoe 2.4 lägger du till det senaste Microsoft.Azure.SpringCloud.Client 1.x.x-paketet i projektfilen:

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

För Steeltoe 3.0 lägger du till det senaste Microsoft.Azure.SpringCloud.Client 2.x.x-paketet i projektfilen:

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

Uppdatera Program.cs

Program.Main Anropa metoden i UseAzureSpringCloudService -metoden.

För Steeltoe 2.4.4 anropar UseAzureSpringCloudService du efter ConfigureWebHostDefaults och efter AddConfigServer om det anropas:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer()
        .UseAzureSpringCloudService();

För Steeltoe 3.0.0 anropar du UseAzureSpringCloudService före ConfigureWebHostDefaults och före någon Steeltoe-konfigurationskod:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseAzureSpringCloudService()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer();

Aktivera identifiering av Eureka Server-tjänsten

Kommentar

Eureka gäller inte för Enterprise-planen. Om du använder Enterprise-planen kan du läsa Använda tjänstregister.

I konfigurationskällan som används när appen körs i Azure Spring Apps anger du spring.application.name samma namn som Azure Spring Apps-appen som projektet distribueras till.

Om du till exempel distribuerar ett .NET-projekt med namnet EurekaDataProvider till en Azure Spring Apps-app med namnet planet-weather-providerappen Inställningar.json bör filen innehålla följande JSON:

"spring": {
  "application": {
    "name": "planet-weather-provider"
  }
}

Använda tjänstidentifiering

Om du vill anropa en tjänst med hjälp av identifieringen av spring.application.name Eureka Server-tjänsten gör du HTTP-begäranden där http://<app_name>app_name är värdet för målappen. Följande kod anropar planet-weather-provider till exempel tjänsten:

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]),
    };
}

Den här artikeln visar hur du förbereder ett befintligt Java Spring-program för distribution till Azure Spring Apps. Om den är korrekt konfigurerad tillhandahåller Azure Spring Apps robusta tjänster för att övervaka, skala och uppdatera Java Spring-programmet.

Innan du kör det här exemplet kan du prova den grundläggande snabbstarten.

Andra exempel förklarar hur du distribuerar ett program till Azure Spring Apps när POM-filen har konfigurerats.

I den här artikeln beskrivs de beroenden som krävs och hur du lägger till dem i POM-filen.

Java Runtime-version

Mer information finns i avsnittet Java-körnings- och OS-versioner i vanliga frågor och svar om Azure Spring Apps.

Spring Boot- och Spring Cloud-versioner

Om du vill förbereda ett befintligt Spring Boot-program för distribution till Azure Spring Apps inkluderar du Spring Boot- och Spring Cloud-beroendena i programmet POM-filen enligt följande avsnitt.

Azure Spring Apps stöder den senaste Spring Boot- eller Spring Cloud-huvudversionen från och med 30 dagar efter lanseringen. Azure Spring Apps har stöd för den senaste delversionen så snart den har släppts. Du kan hämta Spring Boot-versioner som stöds från Spring Boot-versioner och Spring Cloud-versioner från Spring Cloud-versioner.

I följande tabell visas de Spring Boot- och Spring Cloud-kombinationer som stöds:

Spring Boot-version Spring Cloud-version Upphörande av kommersiellt stöd
3.2.x 2023.0.x även kallat Leyton 2026-02-23
3.1.x 2022.0.3+ även kallat Kilburn 2025-08-18
3.0.x 2022.0.3+ även kallat Kilburn 2025-02-24
2.7.x 2021.0.3+ även kallat jubileum 2025-08-24
2.6.x 2021.0.3+ även kallat jubileum 2024-02-24

Mer information finns på följande sidor:

Om du vill aktivera de inbyggda funktionerna i Azure Spring Apps från tjänstregistret till distribuerad spårning måste du även inkludera följande beroenden i ditt program. Du kan släppa vissa av dessa beroenden om du inte behöver motsvarande funktioner för de specifika apparna.

Tjänstregister

Om du vill använda den hanterade Azure Service Registry-tjänsten inkluderar du beroendet spring-cloud-starter-netflix-eureka-client i pom.xml-filen enligt följande:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

Slutpunkten för Service Registry-servern matas automatiskt in som miljövariabler med din app. Program kan registrera sig själva med Service Registry-servern och identifiera andra beroende program.

EnableDiscoveryClient-kommentar

Lägg till följande kommentar i programmets källkod.

@EnableDiscoveryClient

Se till exempel programmet piggymetrics från tidigare exempel:

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);
    }
}

Distribuerad konfiguration

Om du vill aktivera distribuerad konfiguration i Enterprise-planen använder du Application Configuration Service för VMware Tanzu, som är en av de egna VMware Tanzu-komponenterna. Programkonfigurationstjänsten för Tanzu är Kubernetes-inbyggd och skiljer sig från Spring Cloud Config Server. Programkonfigurationstjänsten för Tanzu möjliggör hantering av Kubernetes-inbyggda ConfigMap-resurser som fylls i från egenskaper som definierats i en eller flera Git-lagringsplatser.

I Enterprise-planen finns det ingen Spring Cloud Config Server, men du kan använda Application Configuration Service för Tanzu för att hantera centraliserade konfigurationer. Mer information finns i Använda programkonfigurationstjänsten för Tanzu

Om du vill använda Application Configuration Service för Tanzu gör du följande för var och en av dina appar:

  1. Lägg till en explicit appbindning för att deklarera att din app måste använda Application Configuration Service för Tanzu.

    Kommentar

    När du ändrar bindnings-/avbindningsstatusen måste du starta om eller distribuera om appen för att ändringen ska börja gälla.

  2. Ange konfigurationsfilmönster. Med konfigurationsfilmönster kan du välja vilket program och vilken profil appen använder. Mer information finns i avsnittet Mönster i Använd programkonfigurationstjänst för Tanzu.

    Ett annat alternativ är att ange config-filmönstren samtidigt som appdistributionen, som du ser i följande exempel:

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

Mått

Inkludera beroendet spring-boot-starter-actuator i avsnittet beroenden i din pom.xml-fil som du ser här:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Mått hämtas regelbundet från JMX-slutpunkterna. Du kan visualisera måtten med hjälp av Azure-portalen.

Varning

Du måste ange spring.jmx.enabled=true i konfigurationsegenskapen. Annars kan mått inte visualiseras i Azure-portalen.

Se även

Nästa steg

I den här artikeln har du lärt dig hur du konfigurerar ditt Java Spring-program för distribution till Azure Spring Apps. Information om hur du konfigurerar en konfigurationsserverinstans finns i Konfigurera en konfigurationsserverinstans.

Fler exempel finns på GitHub: Azure Spring Apps-exempel.