Delen via


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:

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

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.