Hızlı başlangıç: ilk uygulamanızı Azure Spring Cloud 'a dağıtma
Bu hızlı başlangıçta, Azure Spring Cloud 'da çalıştırmak için küçük bir uygulamanın nasıl dağıtılacağı açıklanmaktadır.
Not
Azure yay bulutu için steeltoe desteği şu anda genel önizleme olarak sunulmaktadır. Genel Önizleme teklifleri, müşterilerin resmi sürümünden önceki yeni özelliklerle deneme yapmasına olanak tanır. Genel Önizleme özellikleri ve Hizmetleri üretim kullanımı için tasarlanmamıştır. Önizlemeler sırasında destek hakkında daha fazla bilgi için bkz. SSS veya dosya a destek isteği.
Bu hızlı başlangıcı izleyerek şunları nasıl yapacağınızı öğreneceksiniz:
- Temel bir Steeltoe .NET Core projesi oluşturma
- Azure yay bulut hizmeti örneği sağlama
- Uygulamayı ortak bir uç nokta ile derleyin ve dağıtın
- Gerçek zamanlı olarak günlük akışı yapma
Bu hızlı başlangıçta kullanılan uygulama kodu, .NET Core Web API 'SI proje şablonuyla oluşturulmuş basit bir uygulamadır. Bu örneği tamamladığınızda, uygulama çevrimiçi olarak erişilebilir olur ve Azure portal ve Azure CLı aracılığıyla yönetilebilir.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- .NET Core 3,1 SDK. Azure yay bulut hizmeti, .NET Core 3,1 ve sonraki sürümlerini destekler.
- Azure CLI sürüm 2.0.67 veya üzeri.
- Git.
Azure CLI uzantısını yükleme
Azure CLı sürümünüzün 2.0.67 veya üzeri olduğunu doğrulayın:
az --version
Aşağıdaki komutu kullanarak Azure CLı için Azure yay bulutu uzantısını yükler:
az extension add --name spring-cloud
Azure'da oturum açma
Azure CLı 'da oturum açın:
az loginBirden fazla aboneliğiniz varsa, bu hızlı başlangıç için kullanmak istediğiniz birini seçin.
az account list -o tableaz account set --subscription <Name or ID of a subscription from the last step>
Steeltoe .NET Core projesi oluşturma
Visual Studio ' de, apı proje şablonuyla "hello-world" olarak adlandırılan bir ASP.NET Core Web uygulaması oluşturun. Daha sonra test uç noktanız olacak şekilde otomatik olarak üretilmiş bir hava düzeyi denetleyicisi olacağını lütfen unutmayın.
Proje kaynak kodu için bir klasör oluşturun ve proje oluşturun.
mkdir source-codecd source-codedotnet new webapi -n hello-world --framework netcoreapp3.1Proje dizinine gidin.
cd hello-worldAşağıdaki ayarları eklemek için appSettings. JSON dosyasını düzenleyin:
"spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } }Ayrıca appSettings. JSON içinde, kategori için günlük düzeyini ' dan ' a değiştirin
MicrosoftWarningInformation. Bu değişiklik, akış günlüklerini sonraki bir adımda görüntülediğinizde günlüklerin üretileceği bir işlem sağlar.AppSettings. JSON dosyası artık aşağıdaki örneğe benzer şekilde görünür:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Information", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "spring": { "application": { "name": "hello-world" } }, "eureka": { "client": { "shouldFetchRegistry": true, "shouldRegisterWithEureka": true } } }Bağımlılıklar ve bir
Zipgörevi . csproj dosyasına ekleyin:<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>Paketler, Steeltoe hizmeti bulma ve Azure yay bulutu istemci kitaplığı içindir. Bu
Zipgörev, Azure 'a dağıtım içindir.dotnet publishKomutunu çalıştırdığınızda, bu, dosyaları Yayımla klasöründe oluşturur ve bu görev Publish klasörünü Azure 'a yüklediğiniz bir .zip dosyasına dönüştürür.Program. cs dosyasında,
usingAzure yay bulutu istemci kitaplığı 'nı kullanan bir yönerge ve kod ekleyin:using Microsoft.Azure.SpringCloud.Client;public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseAzureSpringCloudService() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });Başlangıç. cs dosyasında,
usingyöntemin sonunda Steeltoe hizmeti bulma 'yı kullanan bir yönerge ve kod ekleyinConfigureServices:using Steeltoe.Discovery.Client;public void ConfigureServices(IServiceCollection services) { // Template code not shown. services.AddDiscoveryClient(Configuration); }Derleme hatası olmadığından emin olmak için projeyi derleyin.
dotnet build
Hizmet örneği sağlama
Aşağıdaki yordam Azure portal kullanarak bir Azure Spring Cloud örneği oluşturur.
Azure portalını açın.
Üst arama kutusundan Azure yay bulutu' nı arayın.
Sonuçlardan Azure yay bulutu ' nı seçin.

Azure yay bulutu sayfasında Oluştur' u seçin.

Azure yay bulutu Oluştur sayfasında formu doldurun. Aşağıdaki yönergeleri göz önünde bulundurun:
- Abonelik: Bu kaynak için faturalandırılması istediğiniz aboneliği seçin.
- Kaynak grubu: yeni bir kaynak grubu oluşturun. Buraya girdiğiniz ad sonraki adımlarda olduğu gibi kullanılacaktır <resource group name> .
- Hizmet Ayrıntıları/adı: öğesini belirtin <service instance name> . Ad 4 ila 32 karakter uzunluğunda olmalı ve yalnızca küçük harf, sayı ve kısa çizgi içermelidir. Hizmet adının ilk karakteri bir harf olmalıdır ve son karakter bir harf ya da sayı olmalıdır.
- Bölge: hizmet örneğiniz için bölgeyi seçin.

Gözden geçir ve Oluştur ' u seçin.
Oluştur’u seçin.
Uygulama derleme ve dağıtma
Aşağıdaki yordam, daha önce oluşturduğunuz projeyi oluşturur ve dağıtır.
Komut isteminin hala proje klasöründe olduğundan emin olun.
Projeyi derlemek, ikilileri yayımlamak ve ikili dosyaları proje klasöründe bir .zip dosyasında depolamak için aşağıdaki komutu çalıştırın.
dotnet publish -c release -o ./publishAzure Spring Cloud örneğiniz için genel bir uç nokta atanmış olarak bir uygulama oluşturun. AppSettings. JSON içinde belirttiğiniz aynı uygulama adını ("Hello-World") kullanın.
az spring-cloud app create -n hello-world -s <service instance name> -g <resource group name> --assign-endpoint --runtime-version NetCore_31.zip dosyasını uygulamaya dağıtın.
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-entrySeçeneği, uygulamanın giriş noktasını içeren .dll dosyasını tanımlar. Hizmet .zip dosyayı karşıya yükledikten sonra, tüm dosya ve klasörleri ayıklar ve tarafından belirtilen .dll dosyasında giriş noktasını yürütmeye çalışır--main-entry.Uygulamanın dağıtım işleminin tamamlanmasının birkaç dakika sürer. Dağıtıldığını doğrulamak için Azure portal uygulamalar bölümüne gidin.
Uygulamayı test etme
Dağıtım tamamlandıktan sonra uygulamaya şu URL 'den erişin:
https://<service instance name>-hello-world.azuremicroservices.io/weatherforecast
Uygulama, aşağıdaki örneğe benzer JSON verileri döndürür:
[{"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"}]
Gerçek zamanlı olarak günlük akışı yapma
Uygulamadan gerçek zamanlı Günlükler almak için aşağıdaki komutu kullanın.
az spring-cloud app logs -n hello-world -s <service instance name> -g <resource group name> --lines 100 -f
Günlükler çıkışta görüntülenir:
[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
İpucu
az spring-cloud app logs -hDaha fazla parametre ve günlük akışı işlevlerini araştırmak için kullanın.
Gelişmiş Log Analytics özellikleri için Azure Portalmenüdeki Günlükler sekmesini ziyaret edin. Burada günlüklerde birkaç dakika gecikme vardır.
Bu hızlı başlangıçta, Azure Spring Cloud 'a küçük bir uygulamanın nasıl dağıtılacağı açıklanmaktadır.
Bu öğreticide kullanılan uygulama kodu, Spring ınitialsır ile oluşturulmuş basit bir uygulamadır. Bu örneği tamamladığınızda, uygulama çevrimiçi olarak erişilebilir olur ve Azure portal aracılığıyla yönetilebilir.
Bu hızlı başlangıçta nasıl yapılacağı açıklanmaktadır:
- Temel yay bulutu projesi oluşturma
- Hizmet örneği sağlama
- Uygulamayı ortak bir uç nokta ile derleyin ve dağıtın
- Gerçek zamanlı olarak günlük akışı yapma
Önkoşullar
Bu hızlı başlangıcı tamamlamak için:
- JDK 8 veya JDK 11 ' i yükler
- Azure aboneliğine kaydolma
- Seçim Azure CLI sürüm 2.0.67 veya üstünü ve Azure yay bulutu uzantısını şu komutla birlikte yüklersiniz:
az extension add --name spring-cloud - Seçim IntelliJ FIKRINI yükler
- Seçim Azure Toolkit for IntelliJ ve oturum açmayı yükleyip
- Seçim Maven 'ı yükler. Azure Cloud Shell kullanıyorsanız, bu yükleme gerekli değildir.
Yay bulutu projesi oluşturma
Azure Spring Cloud için önerilen bağımlılıklara sahip bir örnek proje oluşturmak üzere Spring ınitialku ile başlayın. Bu bağlantı, sizin için varsayılan ayarları sağlamak üzere aşağıdaki URL 'YI kullanır.
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
Aşağıdaki görüntüde Bu örnek proje için önerilen ınitialr ayarı gösterilmektedir.
Bu örnek Java sürüm 8 ' i kullanır. Java sürüm 11 ' i kullanmak istiyorsanız, Project meta verileri' ndeki seçeneği değiştirin.

Tüm bağımlılıklar ayarlandığında Oluştur ' u seçin.
Paketi indirip paketini açın ve ardından şu içeriğe sahip src/Main/Java/com/example/hellospring/HelloController. Java dosyasını ekleyerek basit bir Web uygulaması için bir Web denetleyicisi oluşturun:
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!"; } }
Azure yay bulutu örneği sağlama
Aşağıdaki yordam Azure portal kullanarak bir Azure Spring Cloud örneği oluşturur.
Yeni bir sekmede Azure Portalaçın.
Üst arama kutusundan Azure yay bulutu' nı arayın.
Sonuçlardan Azure yay bulutu ' nı seçin.

Azure yay bulutu sayfasında Oluştur' u seçin.

Azure yay bulutu Oluştur sayfasında formu doldurun. Aşağıdaki yönergeleri göz önünde bulundurun:
- Abonelik: Bu kaynak için faturalandırılması istediğiniz aboneliği seçin.
- Kaynak grubu: yeni kaynaklar için yeni kaynak grupları oluşturmak en iyi uygulamadır. Daha sonraki adımlarda bu kaynak grubunu olarak kullanacaksınız <resource group name> .
- Hizmet Ayrıntıları/adı: öğesini belirtin <service instance name> . Ad 4 ila 32 karakter uzunluğunda olmalı ve yalnızca küçük harf, sayı ve kısa çizgi içermelidir. Hizmet adının ilk karakteri bir harf olmalıdır ve son karakter bir harf ya da sayı olmalıdır.
- Konum: hizmet örneğiniz için bölgeyi seçin.

Gözden geçir ve Oluştur ' u seçin.
Uygulama derleme ve dağıtma
Aşağıdaki yordam, Azure CLı kullanarak uygulamayı oluşturur ve dağıtır. Projenin kökünde aşağıdaki komutu yürütün.
Azure 'da oturum açın ve aboneliğinizi seçin.
az loginBirden fazla aboneliğiniz varsa, erişiminizin olduğu abonelikleri listelemek için aşağıdaki komutu kullanın, ardından bu hızlı başlangıç için kullanmak istediğiniz birini seçin.
az account list -o tableBu hızlı başlangıçta Azure CLı komutlarıyla kullanılacak varsayılan aboneliği ayarlamak için aşağıdaki komutu kullanın.
az account set --subscription <Name or ID of a subscription from the last step>Maven kullanarak projeyi derleyin:
mvn clean package -DskipTestsOrtak bir uç nokta atanmış uygulamayı oluşturun. Yay bulutu projesi oluştururken Java sürüm 11 ' i seçtiyseniz,
--runtime-version=Java_11anahtarını ekleyin.az spring-cloud app create -n hellospring -s <service instance name> -g <resource group name> --assign-endpoint trueUygulama için jar dosyasını dağıtın (
target\hellospring-0.0.1-SNAPSHOT.jarWindows):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.jarUygulamanın dağıtım işleminin tamamlanmasının birkaç dakika sürer. Dağıtıldığını doğrulamak için Azure portal uygulamalar bölümüne gidin. Uygulamanın durumunu görmeniz gerekir.
Dağıtım tamamlandıktan sonra uygulamasına ' de erişebilirsiniz https://<service instance name>-hellospring.azuremicroservices.io/ .
Akış günlükleri gerçek zamanlı olarak
Uygulamadan gerçek zamanlı Günlükler almak için aşağıdaki komutu kullanın.
az spring-cloud app logs -n hellospring -s <service instance name> -g <resource group name> --lines 100 -f
Günlükler sonuçlarda görüntülenir:
İpucu
az spring-cloud app logs -hDaha fazla parametre ve günlük akışı işlevlerini araştırmak için kullanın.
Gelişmiş günlük analizi özellikleri için Azure Portalmenüdeki Günlükler sekmesini ziyaret edin. Burada günlüklerde birkaç dakika gecikme vardır.
Kaynakları temizleme
Yukarıdaki adımlarda, abonelikleriniz sırasında ücretlendirmeye devam edecek Azure kaynakları oluşturdunuz. Gelecekte bu kaynaklara ihtiyacınız yoksa, kaynak grubunu portaldan silin veya Azure CLı 'de aşağıdaki komutu çalıştırın:
az group delete --name <your resource group name> --yes
Sonraki adımlar
Bu hızlı başlangıçta şunları öğrendiniz:
- Temel yay bulutu projesi oluşturma
- Hizmet örneği sağlama
- Uygulamayı genel uç noktayla derleme ve dağıtma
- Gerçek zamanlı olarak günlük akışı yapma
Daha fazla Azure Spring özelliği kullanmayı öğrenmek için örnek bir uygulama dağıtan hızlı başlangıç serisine ilerleyin ve Azure Spring Cloud:
Daha fazla örnek için GitHub: Azure Spring Cloud Örnekleri.

'a dağıtılması 





