Rychlý Start: nasazení první aplikace do jarního cloudu Azure
V tomto rychlém startu se dozvíte, jak nasadit malou aplikaci pro běh v Azure jaře Cloud.
Poznámka
Podpora Steeltoe pro jarní cloud Azure je teď nabízená jako verze Public Preview. Nabídky veřejné verze Preview umožňují zákazníkům experimentovat s novými funkcemi před jejich oficiální verzí. Funkce a služby verze Public Preview nejsou určeny pro produkční použití. Další informace o podpoře v rámci verzí Preview najdete v tématu Nejčastější dotazy nebo soubor a support Request.
V tomto rychlém startu se dozvíte, jak:
- Vygenerování základního projektu Steeltoe .NET Core
- Zřízení instance služby jarní cloudová služba Azure
- Sestavení a nasazení aplikace s veřejným koncovým bodem
- Streamování protokolů v reálném čase
Kód aplikace použitý v tomto rychlém startu je jednoduchá aplikace vytvořená pomocí šablony projektu webového rozhraní API .NET Core. Po dokončení tohoto příkladu bude aplikace dostupná online a bude ji možné spravovat prostřednictvím Azure Portal a Azure CLI.
Požadavky
- Účet Azure s aktivním předplatným. Vytvořte si účet zdarma.
- Sada .NET Core 3,1 SDK. Služba pružinového cloudu Azure podporuje .NET Core 3,1 a novější verze.
- Azure CLI verze 2.0.67 nebo novější.
- Git.
Instalace rozšíření Azure CLI
Ověřte, jestli je verze Azure CLI 2.0.67 nebo novější:
az --version
Pomocí následujícího příkazu nainstalujte rozšíření Azure jaře Cloud pro rozhraní příkazového řádku Azure:
az extension add --name spring-cloud
Přihlášení k Azure
Přihlaste se k Azure CLI:
az loginPokud máte více než jedno předplatné, vyberte ho, který chcete použít pro tento rychlý Start.
az account list -o tableaz account set --subscription <Name or ID of a subscription from the last step>
Generování projektu Steeltoe .NET Core
v Visual Studio vytvořte webovou aplikaci ASP.NET Core s názvem "hello-world" se šablonou projektu rozhraní API. Všimněte si, že zde budou automaticky generované WeatherForecastControllery, které budou naše testovací koncové body později.
Vytvořte složku pro zdrojový kód projektu a vygenerujte projekt.
mkdir source-codecd source-codedotnet new webapi -n hello-world --framework netcoreapp3.1Přejděte do adresáře projektu.
cd hello-worldUpravte soubor appSettings. JSON a přidejte následující nastavení:
"spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } }Také v souboru appSettings. JSON změňte úroveň protokolu pro
Microsoftkategorii zWarningnaInformation. Tato změna zajistí, že se protokoly vytvoří při zobrazení protokolů streamování v pozdějším kroku.Soubor appSettings. JSON teď vypadá podobně jako v následujícím příkladu:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Information", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } } }Přidejte závislosti a
Zipúlohu do souboru . 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>Balíčky jsou pro zjišťování služby Steeltoe a klientskou knihovnu pro Azure jaře Cloud.
ZipÚloha je určena k nasazení do Azure. Kdyždotnet publishpříkaz spustíte, vygeneruje binární soubory ve složce pro publikování a tato úloha zips složku pro publikování do souboru .zip , který nahrajete do Azure.V souboru program. cs přidejte
usingdirektivu a kód, který používá knihovnu klienta Azure pro jarní Cloud:using Microsoft.Azure.SpringCloud.Client;public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseAzureSpringCloudService() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });V souboru Startup. cs přidejte
usingdirektivu a kód, který používá zjišťování služby Steeltoe na konciConfigureServicesmetody:using Steeltoe.Discovery.Client;public void ConfigureServices(IServiceCollection services) { // Template code not shown. services.AddDiscoveryClient(Configuration); }Sestavte projekt, abyste se ujistili, že nejsou k dispozici žádné chyby kompilace.
dotnet build
Zřízení instance služby
Následující postup vytvoří instanci Azure jarního cloudu pomocí Azure Portal.
Otevřete Azure Portal.
V horním vyhledávacím poli vyhledejte Azure jaře Cloud.
Z výsledků vyberte Azure jaře Cloud .

Na stránce jarní cloud Azure vyberte vytvořit.

Vyplňte formulář na stránce Vytvoření jarního cloudu Azure. Zvažte následující pokyny:
- Předplatné: vyberte předplatné, které chcete pro tento prostředek fakturovat.
- Skupina prostředků: Vytvořte novou skupinu prostředků. Název, který zde zadáte, bude použit v pozdějších krocích jako <resource group name> .
- Podrobnosti o službě/název: zadejte <service instance name> . Název musí být dlouhý 4 až 32 znaků a může obsahovat jenom malá písmena, číslice a spojovníky. První znak názvu služby musí být písmeno a poslední znak musí být písmeno nebo číslo.
- Oblast: Vyberte oblast pro instanci služby.

Vyberte možnost zkontrolovat a vytvořit.
Vyberte Vytvořit.
Sestavení a nasazení aplikace
Následující postup sestaví a nasadí projekt, který jste vytvořili dříve.
Ujistěte se, že je příkazový řádek stále ve složce projektu.
Spusťte následující příkaz pro sestavení projektu, publikování binárních souborů a uložení binárních souborů do souboru .zip ve složce projektu.
dotnet publish -c release -o ./publishVytvořte aplikaci v instanci cloudu Azure jaře s přiřazeným veřejným koncovým bodem. Použijte stejný název aplikace "Hello-World", který jste zadali v souboru appSettings. JSON.
az spring-cloud app create -n hello-world -s <service instance name> -g <resource group name> --assign-endpoint --runtime-version NetCore_31Nasaďte soubor .zip do aplikace.
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.zip--main-entryMožnost identifikuje soubor .dll , který obsahuje vstupní bod aplikace. Poté, co služba nahraje soubor .zip , extrahuje všechny soubory a složky a pokusí se spustit vstupní bod v souboru .dll určeném parametrem--main-entry.Dokončení nasazení aplikace trvá několik minut. Pokud chcete ověřit, že je nasazený, vyberte v Azure Portal část aplikace .
Otestování aplikace
Po dokončení nasazení přejděte k aplikaci na následující adrese URL:
https://<service instance name>-hello-world.azuremicroservices.io/weatherforecast
Aplikace vrátí data JSON podobně jako v následujícím příkladu:
[{"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"}]
Streamování protokolů v reálném čase
Pomocí následujícího příkazu můžete z aplikace získat protokoly v reálném čase.
az spring-cloud app logs -n hello-world -s <service instance name> -g <resource group name> --lines 100 -f
Protokoly se zobrazí ve výstupu:
[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
Slouží az spring-cloud app logs -h k prozkoumávání dalších parametrů a funkcí streamování protokolů.
Pro pokročilé funkce Log Analytics přejděte na kartu protokoly v nabídce na Azure Portal. Protokoly mají latenci během několika minut.
protokolů
V tomto rychlém startu se dozvíte, jak nasadit malé aplikace do jarního cloudu Azure.
Kód aplikace použitý v tomto kurzu je jednoduchá aplikace vytvořená s pružinou Initializr. Po dokončení tohoto příkladu bude aplikace dostupná online a bude ji možné spravovat prostřednictvím Azure Portal.
V tomto rychlém startu se dozvíte, jak:
- Vygenerujte základní projekt jarního cloudu
- Zřízení instance služby
- Sestavení a nasazení aplikace s veřejným koncovým bodem
- Streamování protokolů v reálném čase
Požadavky
K provedení kroků v tomto kurzu Rychlý start je potřeba:
- Nainstalovat JDK 8 nebo JDK 11
- Registrace předplatného Azure
- Volitelné Nainstalujte rozhraní příkazového řádku Azure CLI 2.0.67 nebo vyšší verze a rozšíření pro jarní cloud Azure pomocí příkazu:
az extension add --name spring-cloud - Volitelné Nainstalovat INTELLIJ nápad
- Volitelné instalace Azure Toolkit for IntelliJ a přihlášení
- Volitelné Nainstalujte Maven. Použijete-li Azure Cloud Shell, Tato instalace není nutná.
Vygenerování jarního cloudového projektu
Začněte s pružinou Initializr a vygenerujte ukázkový projekt s doporučenými závislostmi pro jarní cloud Azure. Tento odkaz k poskytnutí výchozích nastavení používá následující adresu URL.
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
Následující obrázek ukazuje Doporučené Initializr nastavení pro tento ukázkový projekt.
V tomto příkladu se používá Java verze 8. pokud chcete použít jazyk Java verze 11, změňte možnost v části Project Metadata.

Vyberte možnost Generovat , když jsou nastaveny všechny závislosti.
Stáhněte a rozbalte balíček a pak vytvořte webový řadič pro jednoduchou webovou aplikaci přidáním souboru Src/Main/Java/com/example/hellospring/HelloController. Java s následujícím obsahem:
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!"; } }
Zřízení instance Azure jarního cloudu
Následující postup vytvoří instanci Azure jarního cloudu pomocí Azure Portal.
Na nové kartě otevřete Azure Portal.
V horním vyhledávacím poli vyhledejte Azure jaře Cloud.
Z výsledků vyberte Azure jaře Cloud .

Na stránce jarní cloud Azure vyberte vytvořit.

Vyplňte formulář na stránce Vytvoření jarního cloudu Azure. Zvažte následující pokyny:
- Předplatné: vyberte předplatné, které chcete pro tento prostředek fakturovat.
- Skupina prostředků: vytváření nových skupin prostředků pro nové prostředky je osvědčeným postupem. Tuto skupinu prostředků použijete v pozdějších krocích jako <resource group name> .
- Podrobnosti o službě/název: zadejte <service instance name> . Název musí být dlouhý 4 až 32 znaků a může obsahovat jenom malá písmena, číslice a spojovníky. První znak názvu služby musí být písmeno a poslední znak musí být písmeno nebo číslo.
- Umístění: Vyberte oblast pro instanci služby.

Vyberte možnost zkontrolovat a vytvořit.
Sestavení a nasazení aplikace
Následující postup sestaví a nasadí aplikaci pomocí rozhraní příkazového řádku Azure CLI. Spusťte následující příkaz v kořenu projektu.
Přihlaste se k Azure a vyberte své předplatné.
az loginPokud máte více než jedno předplatné, použijte následující příkaz k vypsání předplatných, ke kterým máte přístup, a pak vyberte ten, který chcete použít pro tento rychlý Start.
az account list -o tablePomocí následujícího příkazu nastavte výchozí předplatné pro použití s příkazy Azure CLI v tomto rychlém startu.
az account set --subscription <Name or ID of a subscription from the last step>Sestavte projekt pomocí Maven:
mvn clean package -DskipTestsVytvořte aplikaci s přiřazeným veřejným koncovým bodem. Pokud jste při generování jarního cloudového projektu vybrali Java verze 11, zahrňte
--runtime-version=Java_11přepínač.az spring-cloud app create -n hellospring -s <service instance name> -g <resource group name> --assign-endpoint trueNasadit soubor JAR pro aplikaci (
target\hellospring-0.0.1-SNAPSHOT.jarna 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.jarDokončení nasazení aplikace trvá několik minut. Pokud chcete ověřit, že je nasazený, vyberte v Azure Portal část aplikace . Měl by se zobrazit stav aplikace.
Po dokončení nasazení budete mít k aplikaci přístup na adrese https://<service instance name>-hellospring.azuremicroservices.io/ .
Streamování protokolů v reálném čase
Pomocí následujícího příkazu můžete z aplikace získat protokoly v reálném čase.
az spring-cloud app logs -n hellospring -s <service instance name> -g <resource group name> --lines 100 -f
Protokoly se zobrazí ve výsledcích:
Tip
Slouží az spring-cloud app logs -h k prozkoumávání dalších parametrů a funkcí streamování protokolů.
Pokročilé funkce pro analýzu protokolů najdete na kartě protokoly v nabídce na Azure Portal. Protokoly mají latenci během několika minut.
Vyčištění prostředků
Ve výše uvedených krocích jste vytvořili prostředky Azure, které budou nadále účtovat poplatky, i když zůstanou v rámci vašeho předplatného. Pokud neočekáváte, že tyto prostředky budete potřebovat v budoucnu, odstraňte skupinu prostředků z portálu nebo spuštěním následujícího příkazu v rozhraní příkazového řádku Azure CLI:
az group delete --name <your resource group name> --yes
Další kroky
V tomto rychlém startu jste se naučili:
- Vygenerujte základní projekt jarního cloudu
- Zřízení instance služby
- Sestavení a nasazení aplikace s veřejným koncovým bodem
- Streamování protokolů v reálném čase
Pokud se chcete dozvědět, jak používat další funkce Azure Springu, v této sérii rychlých startů nasadíte ukázkovou aplikaci pro Azure Spring Cloud:
Další ukázky jsou k dispozici na GitHub: Azure Spring Cloud Samples.






streamování 
