Een toepassing voorbereiden voor implementatie in Azure Spring Apps
Notitie
Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.
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
van de app Instellingen.json 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 commerciële ondersteuning |
---|---|---|
3.2.x | 2023.0.x ook wel bekend als Leyton | 2026-02-23 |
3.1.x | 2022.0.3+ ook wel bekend als Kilburn | 2025-08-18 |
3.0.x | 2022.0.3+ ook wel bekend als Kilburn | 2025-02-24 |
2.7.x | 2021.0.3+ ook wel bekend als Jubileum | 2025-08-24 |
2.6.x | 2021.0.3+ ook wel bekend als Jubileum | 2024-02-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 in het Enterprise-plan wilt inschakelen, gebruikt u Application Configuration Service voor VMware Tanzu. Dit is een van de eigen VMware Tanzu-onderdelen. Application Configuration Service voor Tanzu is kubernetes-systeemeigen en verschilt van Spring Cloud-configuratieserver. Toepassingsconfiguratieservice voor Tanzu maakt het beheer van Kubernetes-systeemeigen ConfigMap-resources mogelijk die zijn ingevuld op basis van eigenschappen die zijn gedefinieerd in een of meer Git-opslagplaatsen.
In het Enterprise-plan is er geen Spring Cloud-configuratieserver, maar u kunt Application Configuration Service voor Tanzu gebruiken om gecentraliseerde configuraties te beheren. Zie Application Configuration Service voor Tanzu gebruiken voor meer informatie
Als u Application Configuration Service voor Tanzu wilt gebruiken, voert u de volgende stappen uit voor elk van uw apps:
Voeg een expliciete app-binding toe om aan te geven dat uw app toepassingsconfiguratieservice voor Tanzu moet gebruiken.
Notitie
Wanneer u de bindings-/niet-gekoppelde status wijzigt, moet u de app opnieuw starten of opnieuw implementeren om de wijziging door te voeren.
Configuratiebestandspatronen instellen. Met configuratiebestandspatronen kunt u kiezen welke toepassing en welk profiel de app gebruikt. Zie de sectie Patroon van De Toepassingsconfiguratieservice voor Tanzu gebruiken voor meer informatie.
Een andere optie is het instellen van de patronen van het configuratiebestand op hetzelfde moment als de implementatie van uw app, zoals wordt weergegeven in het volgende voorbeeld:
az spring app deploy \ --name <app-name> \ --artifact-path <path-to-your-JAR-file> \ --config-file-pattern <config-file-pattern>
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.