Dela via


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

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

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-provider appSettings.json fil bör följande JSON inkluderas:

"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 Supporten upphör
3.2.x 2023.0.x även kallat Leyton 2024-11-23
3.1.x 2022.0.3+ även kallat Kilburn 2024-05-18
3.0.x 2022.0.3+ även kallat Kilburn 2023-11-24
2.7.x 2021.0.3+ även kallat jubileum 2023-11-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 inkluderar du följande spring-cloud-config-client beroenden i avsnittet beroenden i din pom.xml-fil :

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

Varning

Ange spring.cloud.config.enabled=false inte i bootstrap-konfigurationen. Annars slutar programmet att fungera med Config Server.

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

Varning

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

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.