Snabbstart: Distribuera ditt första program till Azure Spring Cloud
Den här snabbstarten förklarar hur du distribuerar ett litet program som ska köras Azure Spring Cloud.
Anteckning
Stöd för metalltå för Azure Spring Cloud erbjuds för närvarande som en offentlig förhandsversion. Med offentliga förhandsversioner kan kunder experimentera med nya funktioner innan de släpps officiellt. Funktioner och tjänster i den offentliga förhandsversionen är inte avsedda för produktionsanvändning. Mer information om support under förhandsversioner finns i Vanliga frågor och svar eller skapa en Supportbegäran.
Genom att följa den här snabbstarten lär du dig att:
- Generera ett grundläggande .NET Core-projekt för Steeltoe
- Etablera en Azure Spring Cloud-tjänstinstans
- Skapa och distribuera appen med en offentlig slutpunkt
- Strömma loggar i realtid
Programkoden som används i den här snabbstarten är en enkel app som skapats med en projektmall för .NET Core Web API. När du har slutfört det här exemplet är programmet tillgängligt online och kan hanteras via Azure Portal och Azure CLI.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- .NET Core 3.1 SDK. Tjänsten Azure Spring Cloud stöder .NET Core 3.1 och senare versioner.
- Azure CLI version 2.0.67 eller senare.
- Git.
Installera Azure CLI-tillägg
Kontrollera att din Azure CLI-version är 2.0.67 eller senare:
az --version
Installera Azure Spring Cloud för Azure CLI med följande kommando:
az extension add --name spring-cloud
Logga in på Azure
Logga in på Azure CLI:
az loginOm du har fler än en prenumeration väljer du den som du vill använda för den här snabbstarten.
az account list -o tableaz account set --subscription <Name or ID of a subscription from the last step>
Generera ett .NET Core-projekt för Steeltoe
I Visual Studio skapar du en ASP.NET Core webbapp med namnet "hello-world" med API-projektmallen. Observera att det kommer att finnas en automatiskt genererad WeatherForecastController som blir vår testslutpunkt senare.
Skapa en mapp för projektets källkod och generera projektet.
mkdir source-codecd source-codedotnet new webapi -n hello-world --framework netcoreapp3.1Navigera till projektkatalogen.
cd hello-worldRedigera filen appSettings.json och lägg till följande inställningar:
"spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } }I appsettings.json ändrar du även loggnivån för
Microsoftkategorin från tillWarningInformation. Den här ändringen säkerställer att loggar skapas när du visar strömningsloggar i ett senare steg.Filen appsettings.json ser nu ut ungefär som i följande exempel:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Information", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } } }Lägg till beroenden och en
Zipuppgift i .csproj-filen:<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>Paketen är för Identifiering av Steeltoe Service och Azure Spring Cloud klientbibliotek. Uppgiften
Zipär för distribution till Azure. När du kör kommandot genererar det binärfilerna idotnet publishpubliceringsmappen, och den här uppgiften zippa in publiceringsmappen i en .zip-fil som du laddar upp till Azure.I filen Program.cs lägger du till
usingett direktiv och kod som använder Azure Spring Cloud klientbiblioteket:using Microsoft.Azure.SpringCloud.Client;public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseAzureSpringCloudService() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });I filen Startup.cs lägger du till ett direktiv och
usingkod som använder Identifiering av Steeltoe Service i slutet avConfigureServicesmetoden:using Steeltoe.Discovery.Client;public void ConfigureServices(IServiceCollection services) { // Template code not shown. services.AddDiscoveryClient(Configuration); }Skapa projektet för att se till att det inte finns några kompileringsfel.
dotnet build
Etablera en tjänstinstans
Följande procedur skapar en instans av Azure Spring Cloud med hjälp av Azure Portal.
Öppna Azure-portalen.
I den övre sökrutan söker du efter Azure Spring Cloud.
Välj Azure Spring Cloud i resultatet.

På sidan Azure Spring Cloud väljer du Skapa.

Fyll i formuläret på sidan Azure Spring Cloud Skapa. Läs igenom följande riktlinjer:
- Prenumeration: Välj den prenumeration som du vill debiteras för den här resursen.
- Resursgrupp: Skapa en ny resursgrupp. Det namn som du anger här används i senare steg som <resource group name> .
- Tjänstinformation/namn: Ange <service instance name> . Namnet måste vara mellan 4 och 32 tecken långt och får bara innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller en siffra.
- Region: Välj region för tjänstinstansen.

Välj Granska och skapa.
Välj Skapa.
Skapa och distribuera appen
Följande procedur skapar och distribuerar projektet som du skapade tidigare.
Kontrollera att kommandotolken fortfarande finns i projektmappen.
Kör följande kommando för att skapa projektet, publicera binärfilerna och lagra binärfilerna i en.zip-fil i projektmappen.
dotnet publish -c release -o ./publishSkapa en app i din Azure Spring Cloud instans med en tilldelad offentlig slutpunkt. Använd samma programnamn "hello-world" som du angav i appsettings.json.
az spring-cloud app create -n hello-world -s <service instance name> -g <resource group name> --assign-endpoint --runtime-version NetCore_31Distribuera .zip till appen.
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.zipAlternativet
--main-entryidentifierar den .dll som innehåller programmets startpunkt. När tjänsten har överfört .zip den alla filer och mappar och försöker köra startpunkten i den.dll som anges av--main-entry.Det tar några minuter att slutföra distributionen av programmet. Bekräfta att den har distribuerats genom att gå till avsnittet Appar i Azure Portal.
Testa appen
När distributionen är klar får du åtkomst till appen via följande URL:
https://<service instance name>-hello-world.azuremicroservices.io/weatherforecast
Appen returnerar JSON-data som liknar följande exempel:
[{"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"}]
Strömma loggar i realtid
Använd följande kommando för att hämta realtidsloggar från appen.
az spring-cloud app logs -n hello-world -s <service instance name> -g <resource group name> --lines 100 -f
Loggarna visas i utdata:
[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
Tips
Använd az spring-cloud app logs -h för att utforska fler parametrar och funktioner för loggströmmar.
Avancerade funktioner för logganalys finns på fliken Loggar i menyn på Azure Portal. Loggarna här har en svarstid på några minuter.
Den här snabbstarten förklarar hur du distribuerar ett litet program till Azure Spring Cloud.
Programkoden som används i den här självstudien är en enkel app som skapats med Spring Initializr. När du har slutfört det här exemplet är programmet tillgängligt online och kan hanteras via Azure Portal.
Den här snabbstarten förklarar hur du:
- Generera ett grundläggande Spring Cloud projekt
- Etablera en tjänstinstans
- Skapa och distribuera appen med en offentlig slutpunkt
- Strömma loggar i realtid
Förutsättningar
För att slutföra den här snabbstarten behöver du:
- Installera JDK 8 eller JDK 11
- Registrera dig för en Azure-prenumeration
- (Valfritt) Installera Azure CLI version 2.0.67 eller senare och Azure Spring Cloud med kommandot :
az extension add --name spring-cloud - (Valfritt) Installera IntelliJ IDEA
- (Valfritt) Installera Azure Toolkit for IntelliJ och logga in
- (Valfritt) Installera Maven. Om du använder Azure Cloud Shell behövs inte den här installationen.
Generera ett Spring Cloud projekt
Börja med Spring Initializr för att generera ett exempelprojekt med rekommenderade beroenden för Azure Spring Cloud. Den här länken använder följande URL för att tillhandahålla standardinställningar åt dig.
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
Följande bild visar den rekommenderade Initializr-installationen för det här exempelprojektet.
I det här exemplet används Java version 8. Om du vill använda Java version 11 ändrar du alternativet under Project Metadata.

Välj Generera när alla beroenden har angetts.
Ladda ned och packa upp paketet och skapa sedan en webbkontrollant för en enkel webbapp genom att lägga till filen src/main/java/com/example/hellospring/HelloController.java med följande innehåll:
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!"; } }
Etablera en instans av Azure Spring Cloud
Följande procedur skapar en instans av Azure Spring Cloud med hjälp av Azure Portal.
I en ny flik öppnar du Azure Portal.
I den övre sökrutan söker du efter Azure Spring Cloud.
Välj Azure Spring Cloud i resultatet.

På Azure Spring Cloud väljer du Skapa.

Fyll i formuläret på sidan Azure Spring Cloud Skapa. Läs igenom följande riktlinjer:
- Prenumeration: Välj den prenumeration som du vill debiteras för den här resursen.
- Resursgrupp: Bästa praxis är att skapa nya resursgrupper för nya resurser. Du kommer att använda den här resursgruppen i senare steg som <resource group name> .
- Tjänstinformation/namn: Ange <service instance name> . Namnet måste vara mellan 4 och 32 tecken långt och får bara innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller en siffra.
- Plats: Välj region för din tjänstinstans.

Välj Granska och skapa.
Skapa och distribuera appen
Följande procedur skapar och distribuerar programmet med hjälp av Azure CLI. Kör följande kommando i projektroten.
Logga in på Azure och välj din prenumeration.
az loginOm du har fler än en prenumeration använder du följande kommando för att visa en lista över de prenumerationer som du har åtkomst till. Välj sedan den du vill använda för den här snabbstarten.
az account list -o tableAnvänd följande kommando för att ange den standardprenumeration som ska användas med Azure CLI-kommandona i den här snabbstarten.
az account set --subscription <Name or ID of a subscription from the last step>Skapa projektet med hjälp av Maven:
mvn clean package -DskipTestsSkapa appen med en tilldelad offentlig slutpunkt. Om du valde Java version 11 när du genererade Spring Cloud projekt inkluderar du
--runtime-version=Java_11växeln .az spring-cloud app create -n hellospring -s <service instance name> -g <resource group name> --assign-endpoint trueDistribuera Jar-filen för appen (
target\hellospring-0.0.1-SNAPSHOT.jarpå 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.jarDet tar några minuter att slutföra distributionen av programmet. Bekräfta att den har distribuerats genom att gå till avsnittet Appar i Azure Portal. Du bör se status för programmet.
När distributionen är klar kan du komma åt appen på https://<service instance name>-hellospring.azuremicroservices.io/ .
Strömma loggar i realtid
Använd följande kommando för att hämta realtidsloggar från appen.
az spring-cloud app logs -n hellospring -s <service instance name> -g <resource group name> --lines 100 -f
Loggarna visas i resultatet:
Tips
Använd az spring-cloud app logs -h för att utforska fler parametrar och funktioner för loggströmmar.
För avancerade funktioner för logganalys går du till fliken Loggar i menyn på Azure Portal. Loggarna här har en svarstid på några minuter.
Rensa resurser
I stegen ovan skapade du Azure-resurser som fortsätter att ackumulera avgifter medan de finns kvar i din prenumeration. Om du inte tror att du behöver dessa resurser i framtiden kan du ta bort resursgruppen från portalen eller genom att köra följande kommando i Azure CLI:
az group delete --name <your resource group name> --yes
Nästa steg
I den här snabbstarten har du lärt dig att:
- Generera ett grundläggande Spring Cloud projekt
- Etablera en tjänstinstans
- Skapa och distribuera appen med en offentlig slutpunkt
- Strömma loggar i realtid
Om du vill lära dig hur du använder fler Azure Spring-funktioner går du vidare till snabbstartsserien som distribuerar ett exempelprogram till Azure Spring Cloud:
Fler exempel finns på GitHub: Azure Spring Cloud Exempel.







