Een toepassing voorbereiden voor implementatie in Azure Spring Apps
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise
In dit artikel wordt beschreven hoe u een bestaande Steeltoe-toepassing voorbereidt voor implementatie in Azure Spring Apps. Azure Spring Apps biedt robuuste services voor het hosten, bewaken, schalen en bijwerken van een Steeltoe-app.
In dit artikel worden de afhankelijkheden, configuratie en code uitgelegd die vereist zijn voor het uitvoeren van een .NET Core Steeltoe-app in Azure Spring Apps. Zie Uw eerste Spring Boot-app implementeren in Azure Spring Apps voor informatie over het implementeren van een toepassing in Azure Spring Apps.
Notitie
Steeltoe-ondersteuning voor Azure Spring Apps wordt momenteel aangeboden als openbare preview. Met openbare preview-aanbiedingen kunnen klanten voorafgaand aan de officiële release met nieuwe functies experimenteren. Openbare preview-functies en -services zijn niet bedoeld voor gebruik in productie. Voor meer informatie over ondersteuning tijdens previews kunt u de Veelgestelde vragen raadplegen of een Ondersteuningsaanvraag indienen.
Ondersteunde versies
Azure Spring Apps biedt ondersteuning voor:
- .NET Core 3.1
- Steeltoe 2.4 en 3.0
Afhankelijkheden
Voeg voor Steeltoe 2.4 het meest recente pakket Microsoft.Azure.SpringCloud.Client 1.x.x toe aan het projectbestand:
<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>
Voeg voor Steeltoe 3.0 het meest recente pakket Microsoft.Azure.SpringCloud.Client 2.x.x toe aan het projectbestand:
<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>
Program.cs bijwerken
Roep in de Program.Main
methode de methode aan UseAzureSpringCloudService
.
Voor Steeltoe 2.4.4 belt UseAzureSpringCloudService
u na ConfigureWebHostDefaults
en na AddConfigServer
als het wordt aangeroepen:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Voor Steeltoe 3.0.0 roept UseAzureSpringCloudService
u vóór ConfigureWebHostDefaults
en vóór een Steeltoe-configuratiecode aan:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Eureka Server-servicedetectie inschakelen
Notitie
Eureka is niet van toepassing op het Enterprise-plan. Zie Serviceregister gebruiken als u het Enterprise-abonnement gebruikt.
Stel in de configuratiebron die wordt gebruikt wanneer de app wordt uitgevoerd in Azure Spring Apps, in op spring.application.name
dezelfde naam als de Azure Spring Apps-app waarop het project wordt geïmplementeerd.
Als u bijvoorbeeld een .NET-project met de naam EurekaDataProvider
implementeert in een Azure Spring Apps-app met de naam planet-weather-provider
appSettings.json-bestand, moet het volgende JSON-bestand bevatten:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Servicedetectie gebruiken
Als u een service wilt aanroepen met behulp van de Eureka Server-servicedetectie, moet u HTTP-aanvragen indienen waar http://<app_name>
app_name
de waarde van spring.application.name
de doel-app is. Met de volgende code wordt bijvoorbeeld de service aanroepen 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]),
};
}
In dit artikel wordt beschreven hoe u een bestaande Java Spring-toepassing voorbereidt voor implementatie in Azure Spring Apps. Als azure Spring Apps correct is geconfigureerd, biedt Azure Spring Apps robuuste services voor het bewaken, schalen en bijwerken van uw Java Spring-toepassing.
Voordat u dit voorbeeld kunt uitvoeren, kunt u de eenvoudige quickstart uitproberen.
In andere voorbeelden wordt uitgelegd hoe u een toepassing implementeert in Azure Spring Apps wanneer het POM-bestand is geconfigureerd.
In dit artikel worden de vereiste afhankelijkheden uitgelegd en hoe u deze toevoegt aan het POM-bestand.
Java Runtime-versie
Zie de sectie Java-runtime- en besturingssysteemversies van de veelgestelde vragen over Azure Spring Apps voor meer informatie.
Spring Boot- en Spring Cloud-versies
Als u een bestaande Spring Boot-toepassing wilt voorbereiden voor implementatie in Azure Spring Apps, neemt u de Spring Boot- en Spring Cloud-afhankelijkheden op in het POM-bestand van de toepassing, zoals wordt weergegeven in de volgende secties.
Azure Spring Apps ondersteunt de nieuwste primaire versie van Spring Boot of Spring Cloud vanaf 30 dagen na de release. Azure Spring Apps ondersteunt de nieuwste secundaire versie zodra deze is uitgebracht. U kunt ondersteunde Spring Boot-versies ophalen uit Spring Boot Releases en Spring Cloud-versies van Spring Cloud Releases.
De volgende tabel bevat de ondersteunde Combinaties van Spring Boot en Spring Cloud:
Spring Boot-versie | Spring Cloud-versie | Einde van ondersteuning |
---|---|---|
3.2.x | 2023.0.x ook wel bekend als Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ ook wel bekend als Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ ook wel bekend als Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+ ook wel bekend als Jubileum | 2023-11-24 |
Zie de volgende pagina's voor meer informatie:
- Versieondersteuning voor Java, Spring Boot en meer
- Spring Boot-ondersteuning
- Ondersteuning voor Spring Cloud-configuratie
- Ondersteuning voor Spring Cloud Netflix
- Spring Cloud toevoegen aan een bestaande Spring Boot-toepassing
Andere aanbevolen afhankelijkheden om Azure Spring Apps-functies in te schakelen
Als u de ingebouwde functies van Azure Spring Apps wilt inschakelen van het serviceregister naar gedistribueerde tracering, moet u ook de volgende afhankelijkheden in uw toepassing opnemen. U kunt sommige van deze afhankelijkheden verwijderen als u geen bijbehorende functies voor de specifieke apps nodig hebt.
Serviceregister
Als u de beheerde Service Registry-service van Azure wilt gebruiken, neemt u de spring-cloud-starter-netflix-eureka-client
afhankelijkheid op in het pom.xml-bestand , zoals hier wordt weergegeven:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Het eindpunt van de Service Registry-server wordt automatisch geïnjecteerd als omgevingsvariabelen met uw app. Toepassingen kunnen zichzelf registreren bij de Service Registry-server en andere afhankelijke toepassingen detecteren.
Annotatie enableDiscoveryClient
Voeg de volgende aantekening toe aan de broncode van de toepassing.
@EnableDiscoveryClient
Zie bijvoorbeeld de piggymetrics-toepassing uit eerdere voorbeelden:
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);
}
}
Gedistribueerde configuratie
Als u gedistribueerde configuratie wilt inschakelen, neemt u de volgende spring-cloud-config-client
afhankelijkheid op in de sectie Afhankelijkheden van uw pom.xml-bestand :
<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>
Waarschuwing
Geef niet op spring.cloud.config.enabled=false
in de bootstrapconfiguratie. Anders werkt uw toepassing niet meer met de configuratieserver.
Metrische gegevens voor
Neem de spring-boot-starter-actuator
afhankelijkheid op in de sectie Afhankelijkheden van uw pom.xml-bestand , zoals hier wordt weergegeven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Metrische gegevens worden periodiek opgehaald uit de JMX-eindpunten. U kunt de metrische gegevens visualiseren met behulp van Azure Portal.
Waarschuwing
U moet opgeven spring.jmx.enabled=true
in uw configuratie-eigenschap. Anders kunnen metrische gegevens niet worden gevisualiseerd in Azure Portal.
Zie ook
- Toepassingslogboeken en metrische gegevens analyseren
- Uw configuratieserver instellen
- Spring-snelstartgids
- Documentatie voor Spring Boot
Volgende stappen
In dit artikel hebt u geleerd hoe u uw Java Spring-toepassing configureert voor implementatie in Azure Spring Apps. Zie Een exemplaar van een configuratieserver instellen voor meer informatie over het instellen van een exemplaar van een configuratieserver.
Er zijn meer voorbeelden beschikbaar op GitHub: Azure Spring Apps-voorbeelden.