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:
- Versionsstöd för Java, Spring Boot med mera
- Stöd för Spring Boot
- Stöd för Spring Cloud-konfiguration
- Stöd för Spring Cloud Netflix
- Lägga till Spring Cloud i ett befintligt Spring Boot-program
Andra rekommenderade beroenden för att aktivera Azure Spring Apps-funktioner
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
- Analysera programloggar och mått
- Konfigurera konfigurationsservern
- Spring Snabbstartsguide
- Spring Boot-dokumentation
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.