Quickstart: Uw eerste toepassing implementeren in Azure Spring Cloud
In deze quickstart wordt uitgelegd hoe u een kleine toepassing implementeert om te worden uitgevoerd op Azure Spring Cloud.
Notitie
Steeltoe-ondersteuning voor Azure Spring Cloud 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.
In deze quickstart leert u het volgende:
- Een eenvoudig Steeltoe .NET Core-project genereren
- Een exemplaar van de Azure Spring Cloud-service inrichten
- De app bouwen en implementeren met een openbaar eindpunt
- Logboeken in real-time streamen
De toepassingscode die in deze quickstart wordt gebruikt, is een eenvoudige app die wordt ontwikkeld met een .NET Core-projectsjabloon voor web-API’s. Wanneer u dit voorbeeld hebt voltooid, is de toepassing online toegankelijk en kan deze worden beheerd via de Azure-portal en Azure CLI.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- .NET Core 3.1 SDK. De Azure Spring Cloud-service ondersteunt .NET Core 3.1 en hogere versies.
- Azure CLI versie 2.0.67 of hoger.
- Git.
Azure CLI-extensie installeren
Controleer of de Azure CLI-versie 2.0.67 of hoger is:
az --version
Voer de volgende opdracht uit om de Azure Spring Cloud-extensie voor Azure CLI te installeren:
az extension add --name spring-cloud
Aanmelden bij Azure
Meld u aan bij de Azure CLI:
az loginAls u meerdere abonnementen hebt, kiest u het abonnement dat u voor deze quickstart wilt gebruiken.
az account list -o tableaz account set --subscription <Name or ID of a subscription from the last step>
Een Steeltoe .NET Core-project genereren
Maak in Visual Studio een ASP.NET Core-webtoepassing met de naam ‘hello-world’ met behulp van een projectsjabloon voor API’s. U ziet dat er een automatisch gegenereerde WeatherForecastController is die ons test-eindpunt later zal zijn.
Maak een map voor de projectbroncode en genereer het project.
mkdir source-codecd source-codedotnet new webapi -n hello-world --framework netcoreapp3.1Navigeer naar de projectmap.
cd hello-worldBewerk het bestand appSettings.json om de volgende instellingen toe te voegen:
"spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } }Wijzig in appsettings.json het logboekniveau voor de categorie
MicrosoftvanWarninginInformation. Deze wijziging verzekert dat er logboeken worden geproduceerd wanneer u streaminglogboeken bekijkt in een latere stap.Het bestand appsettings.json ziet er nu ongeveer zoals het volgende voorbeeld uit:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Information", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } } }Voeg afhankelijkheden en een
Zip-taak toe aan het bestand .csproj:<ItemGroup> <PackageReference Include="Steeltoe.Discovery.ClientCore" Version="3.1.0" /> <PackageReference Include="Microsoft.Azure.SpringCloud.Client" Version="2.0.0-preview.1" /> </ItemGroup> <Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/deploy.zip" Overwrite="true" /> </Target>De pakketten zijn voor Steeltoe Service Discovery en de Azure Spring Cloud-clientbibliotheek. De
Zip-taak is voor implementatie in Azure. Wanneer u de opdrachtdotnet publishuitvoert, worden de binaire bestanden in de map publish gegenereerd, en met deze taak wordt de map publish gezipt in een ZIP-bestand dat u naar Azure uploadt.In het bestand Program.cs voegt u een
using-instructie en code die gebruikmaakt van de Azure Spring Cloud-clientbibliotheek toe:using Microsoft.Azure.SpringCloud.Client;public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseAzureSpringCloudService() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });Voeg in het bestand Startup.cs een -richtlijn en code toe die gebruikmaakt van de Steeltoe Service Discovery aan
usinghet einde van de methodeConfigureServices:using Steeltoe.Discovery.Client;public void ConfigureServices(IServiceCollection services) { // Template code not shown. services.AddDiscoveryClient(Configuration); }Bouw het project om ervoor te zorgen dat er geen compilatiefouten zijn.
dotnet build
Een service-exemplaar inrichten
Met de volgende procedure maakt u een exemplaar van Azure Spring Cloud met behulp van de Azure Portal.
Open Azure Portal.
Zoek in het bovenste zoekvak naar Azure Spring Cloud.
Selecteer Azure Spring Cloud in de resultaten.

Selecteer op Azure Spring Cloud pagina Maken.

Vul het formulier in op de Azure Spring Cloud-pagina Maken. Houd rekening met de volgende richtlijnen:
- Abonnement: Selecteer het abonnement waarvoor u voor deze resource gefactureerd wilt worden.
- Resourcegroep: Maak een nieuwe resourcegroep. De naam die u hier invoert, wordt in latere stappen gebruikt als <resource group name> .
- Servicedetails/naam: Geef de <service instance name> op. De naam moet tussen de 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn.
- Regio: Selecteer de regio voor uw service-exemplaar.

Selecteer Controleren en maken.
Selecteer Maken.
De app compileren en implementeren
Met de volgende procedure wordt het project gebouwd en geïmplementeerd dat u eerder hebt gemaakt.
Zorg ervoor dat de opdrachtprompt nog steeds in de projectmap staat.
Voer de volgende opdracht uit om het project te bouwen, de binaire bestanden te publiceren en de binaire bestanden op te slaan in een ZIP-bestand in de projectmap.
dotnet publish -c release -o ./publishMaak een app in uw Azure Spring Cloud-exemplaar met een openbaar eindpunt eraan toegewezen. Gebruik dezelfde toepassingsnaam ‘hello-world’ die u hebt opgegeven in appsettings.json.
az spring-cloud app create -n hello-world -s <service instance name> -g <resource group name> --assign-endpoint --runtime-version NetCore_31Implementeer het ZIP-bestand in de app.
az spring-cloud app deploy -n hello-world -s <service instance name> -g <resource group name> --runtime-version NetCore_31 --main-entry hello-world.dll --artifact-path ./deploy.zipDe optie
--main-entryidentificeert het DLL-bestand dat het beginpunt van de toepassing bevat. Nadat het ZIP-bestand is geüpload, worden alle bestanden en mappen geëxtraheerd en wordt geprobeerd het beginpunt in het DLL-bestand opgegeven door--main-entryuit te voeren.Het duurt enkele minuten om de implementatie van de toepassing te voltooien. Als u wilt controleren of de app is geïmplementeerd, gaat u naar de sectie Apps in de Azure Portal.
De app testen
Zodra de implementatie is voltooid, kunt u de app openen op de volgende URL:
https://<service instance name>-hello-world.azuremicroservices.io/weatherforecast
De app retourneert JSON-gegevens die lijken op die in het volgende voorbeeld:
[{"date":"2020-09-08T21:01:50.0198835+00:00","temperatureC":14,"temperatureF":57,"summary":"Bracing"},{"date":"2020-09-09T21:01:50.0200697+00:00","temperatureC":-14,"temperatureF":7,"summary":"Bracing"},{"date":"2020-09-10T21:01:50.0200715+00:00","temperatureC":27,"temperatureF":80,"summary":"Freezing"},{"date":"2020-09-11T21:01:50.0200717+00:00","temperatureC":18,"temperatureF":64,"summary":"Chilly"},{"date":"2020-09-12T21:01:50.0200719+00:00","temperatureC":16,"temperatureF":60,"summary":"Chilly"}]
Logboeken in real-time streamen
Gebruik de volgende opdracht om realtime logboeken op te halen uit de app.
az spring-cloud app logs -n hello-world -s <service instance name> -g <resource group name> --lines 100 -f
Logboeken worden weergegeven in de uitvoer:
[Azure Spring Cloud] The following environment variables are loaded:
2020-09-08 20:58:42,432 INFO supervisord started with pid 1
2020-09-08 20:58:43,435 INFO spawned: 'event-gather_00' with pid 9
2020-09-08 20:58:43,436 INFO spawned: 'dotnet-app_00' with pid 10
2020-09-08 20:58:43 [Warning] No managed processes are running. Wait for 30 seconds...
2020-09-08 20:58:44,843 INFO success: event-gather_00 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-09-08 20:58:44,843 INFO success: dotnet-app_00 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
←[40m←[32minfo←[39m←[22m←[49m: Steeltoe.Discovery.Eureka.DiscoveryClient[0]
Starting HeartBeat
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://[::]:1025
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: /netcorepublish/6e4db42a-b160-4b83-a771-c91adec18c60
2020-09-08 21:00:13 [Information] [10] Start listening...
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/1.1 GET http://asc-svc-hello-world.azuremicroservices.io/weatherforecast
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'hello_world.Controllers.WeatherForecastController.Get (hello-world)'
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[3]
Route matched with {action = "Get", controller = "WeatherForecast"}. Executing controller action with signature System.Collections.Generic.IEnumerable`1[hello_world.WeatherForecast] Get() on controller hello_world.Controllers.WeatherForecastController (hello-world).
info: Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor[1]
Executing ObjectResult, writing value of type 'hello_world.WeatherForecast[]'.
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]
Executed action hello_world.Controllers.WeatherForecastController.Get (hello-world) in 1.8902ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'hello_world.Controllers.WeatherForecastController.Get (hello-world)'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 4.2591ms 200 application/json; charset=utf-8
Tip
Gebruik az spring-cloud app logs -h om meer parameters en functionaliteit van logboekstreaming te verkennen.
Ga voor geavanceerde log analytics-functies naar het tabblad Logboeken in het menu op Azure Portal. Logboeken hebben hier een latentie van enkele minuten.
In deze quickstart wordt uitgelegd hoe u een kleine toepassing implementeert in Azure Spring Cloud.
De toepassingscode die in deze zelfstudie wordt gebruikt, is een eenvoudige app die is gebouwd met Spring Initializr. Wanneer u dit voorbeeld hebt voltooid, is de toepassing online toegankelijk en kan deze worden beheerd via de Azure-portal.
In deze quickstart wordt het volgende uitgelegd:
- Een eenvoudig Spring Cloud-project genereren
- Een service-exemplaar inrichten
- De app bouwen en implementeren met een openbaar eindpunt
- Logboeken in real-time streamen
Vereisten
Dit zijn de vereisten voor het voltooien van deze snelstart:
- JDK 8 of JDK 11 installeren
- Aanmelden voor een Azure-abonnement
- (Optioneel) Installeer Azure CLI versie 2.0.67 of hoger en de extensie Azure Spring Cloud met de opdracht :
az extension add --name spring-cloud - (Optioneel) IntelliJ IDEA installeren
- (Optioneel) De Azure-toolkit voor IntelliJ installeren en aanmelden
- (Optioneel) Installeer Maven. Als u de Azure Cloud Shell, is deze installatie niet nodig.
Een Spring Cloud-project genereren
Begin met Spring Initializr om een voorbeeldproject te genereren met aanbevolen afhankelijkheden voor Azure Spring Cloud. Deze koppeling maakt gebruik van de volgende URL om de standaardinstellingen voor u op te geven.
https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.5&packaging=jar&jvmVersion=1.8&groupId=com.example&artifactId=hellospring&name=hellospring&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.hellospring&dependencies=web,cloud-eureka,actuator,cloud-config-client
In de volgende afbeelding ziet u de aanbevolen Initializr-set-up voor dit voorbeeldproject.
In dit voorbeeld wordt Java versie 8 gebruikt. Als u Java versie 11 wilt gebruiken, wijzigt u de optie onder metagegevens Project metagegevens.

Selecteer Genereren wanneer alle afhankelijkheden zijn ingesteld.
Download het pakket en pak het uit. Maak vervolgens een webcontroller voor een eenvoudige webtoepassing door het bestand src/main/java/com/example/hellospring/HelloController.java toe te voegen met de volgende inhoud:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Cloud!"; } }
Een exemplaar van Azure Spring Cloud inrichten
Met de volgende procedure maakt u een exemplaar van Azure Spring Cloud met behulp van de Azure-portal.
Open Azure Portal op een nieuw tabblad.
Zoek in het bovenste zoekvak naar Azure Spring Cloud.
Selecteer Azure Spring Cloud in de resultaten.

Selecteer op Azure Spring Cloud pagina Maken.

Vul het formulier in op de Azure Spring Cloud-pagina Maken. Houd rekening met de volgende richtlijnen:
- Abonnement: Selecteer het abonnement waarvoor u voor deze resource gefactureerd wilt worden.
- Resourcegroep: Het is een best practice om nieuwe resourcegroepen te maken voor nieuwe resources. U gebruikt deze resourcegroep in latere stappen als <resource group name> .
- Servicedetails/naam: Geef de <service instance name> op. De naam moet tussen de 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn.
- Locatie: Selecteer de regio voor uw service-exemplaar.

Selecteer Controleren en maken.
De app compileren en implementeren
Met de volgende procedure wordt de toepassing gebouwd en geïmplementeerd met behulp van de Azure CLI. Voer de volgende opdracht uit in de hoofdmap van het project.
Meld u aan bij Azure en kies uw abonnement.
az loginAls u meer dan één abonnement hebt, gebruikt u de volgende opdracht om de abonnementen weer te geven waar u toegang toe hebt. Kies vervolgens het abonnement dat u wilt gebruiken voor deze quickstart.
az account list -o tableGebruik de volgende opdracht om het standaardabonnement in te stellen voor gebruik met de Azure CLI-opdrachten in deze quickstart.
az account set --subscription <Name or ID of a subscription from the last step>Bouw het project met behulp van Maven:
mvn clean package -DskipTestsMaak de app met een openbaar eindpunt toegewezen. Als u Java versie 11 hebt geselecteerd bij het genereren van het Spring Cloud project, moet u de
--runtime-version=Java_11switch opnemen.az spring-cloud app create -n hellospring -s <service instance name> -g <resource group name> --assign-endpoint trueImplementeer het JAR-bestand voor de app (
target\hellospring-0.0.1-SNAPSHOT.jarin Windows):az spring-cloud app deploy -n hellospring -s <service instance name> -g <resource group name> --artifact-path <jar file path>/hellospring-0.0.1-SNAPSHOT.jarHet duurt enkele minuten om de implementatie van de toepassing te voltooien. Als u wilt controleren of de app is geïmplementeerd, gaat u naar de sectie Apps in het Azure Portal. U ziet hier de status van de toepassing.
Zodra de implementatie is voltooid, hebt u toegang tot de app op https://<service instance name>-hellospring.azuremicroservices.io/.
Streaminglogboeken in real-time
Gebruik de volgende opdracht om realtime logboeken op te halen uit de app.
az spring-cloud app logs -n hellospring -s <service instance name> -g <resource group name> --lines 100 -f
Logboeken worden weergegeven in de resultaten:
Tip
Gebruik az spring-cloud app logs -h om meer parameters en functionaliteit van logboekstreaming te verkennen.
Ga voor geavanceerde functies voor logboekanalyse naar het tabblad Logboeken in het menu op Azure Portal. Logboeken hebben hier een latentie van enkele minuten.
Resources opschonen
In de bovenstaande stappen hebt u Azure-resources gemaakt die nog steeds in rekening worden gebracht terwijl ze in uw abonnement blijven. Als u deze resources niet meer nodig denkt te hebben, verwijdert u de resourcegroep uit de portal of door de volgende opdracht in Azure CLI uit te voeren:
az group delete --name <your resource group name> --yes
Volgende stappen
In deze snelstart hebt u de volgende zaken geleerd:
- Een eenvoudig Spring Cloud-project genereren
- Een service-exemplaar inrichten
- De app bouwen en implementeren met een openbaar eindpunt
- Logboeken in real-time streamen
Als u wilt weten hoe u nog meer Azure Spring-mogelijkheden kunt gebruiken, gaat u verder met de quickstart-reeks waarin een voorbeeldtoepassing wordt geïmplementeerd in Azure Spring Cloud:
Meer voorbeelden zijn beschikbaar in GitHub: Azure Spring Cloud-voorbeelden.







