Azure App Service ile Azure Cloud’ta Dağıtım Merkezi Azure DevOps Olan DotNet Core Web Uygulaması Yayınlama

Merhaba,

Azure App Service ile dağıtım merkezi olarak Azure DevOps (tfs) u seçip, visual studio’nun yayınlama hizmetini kullanarak azure’da dotnet core web projemizi barındırma ile ilgili olacak yazımız. Ancak bunun öncesinde bazı gereksinimlerimiz var.

https://azure.microsoft.com/tr-tr/free/ sayfası üzerinden ücretsiz kullanmaya başlayabileceğiniz azure hesabınızı oluşturalım, Microsoft hesabınız yoksa yeni bir Microsoft hesabı oluşturalım. Bu Microsoft hesabınızı visual studio’da çalışırken de, TFS’da (Azure DevOps’ta) (https://dev.azure.com/useracount/ veya https://useracount.visualstudio.com/ ) hesap açarken de, azure portalına giriş yaparken de ( https://portal.azure.com/ )kullanacağız. Azure da 12 ay “ücretsiz deneme” aboneliğinizi aktif edebilirsiniz (sanal kart ile oluşturdum ben).

Visual studio 17 ide’sinde asp.net core 2.2 framework ünde web uygulaması geliştireceğiz. IDE üzerinden azure service’lerini de kullanabilmek için geliştirme araçlarımızı kontrol ediyoruz. Azure Web ve Cloud Services i kullanmak için visual studio installer’da azure geliştirme araçlarının yüklü olup olmadığını, yüklü değilse aracı seçip visual studio’yu güncelliyoruz.

0
1

File => New => Project => Web => Core Web App ile bir dotnet core projesi açıyoruz. İsim olarak herhangi bir şey verebilirsiniz. Framework dotnet core 2.2 olarak seçmiştik. Proje hazır olduğunda 2 no’lu görsele benzer bir sonuç alırsınız.

2
2

Proje üzerinde herhangi bir geliştirme yapmadan önce uygulamanın ilk çıktısını görmek için f5 ile (yada ctrl+f5 ile) çalıştırıyorum.

3
3

3 numaralı görselde uygulamamız çalışıyor görünüyor. Bu kısım cepte 😊

2.ci adımda azure portal üzerinde bu yayınlayacağımız projenin barındırılacağı bir app service tanımlayacağız. Sonra da Azure App Service’e projemizi nasıl dağıtacağımızı göreceğiz. App Service  planından ve dağıtılmış bir web uygulamasına sahip bir App Service uygulamasından oluşan bir kaynak grubu da tanımlayacağız.

Azure portalda uygulama hizmetlerine (AppService e) tıklayalım.

1
4

Aşağıdaki ekranın açılması için açılışta söylediğimiz gibi bir azure aboneliği başlatmalısınız.

4
5

Bu adımda “App Service Oluştur” butonu ile yeni bir servis oluşturalım. Açılan sayfada temel ayarlar sekmesinde abonelik türünü (12 aylık deneme sürümünden faydalanıyorum), “kaynak grubunu” ise yeni oluştur butonu ile bir isim vererek seçiyorum. Kaynak grubu web uygulamaları, veri tabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. (Microsoft tanımı ile). Ayrıntılarda “Ad” kısmında verdiğim isim benim site adım olacak ben “teacherloper” yazıyorum, dolayısıyla siteme teacherloper.azurewebsites.net linki ile erişebiliyor olacağım. Çalışma yığınını buradan core 2.2 olarak seçiyorum bölgemi de kuzey Avrupa seçiyorum.

5
6

Tablardan “izleme” ye geçtiğimde ise application insights yani uygulama performans yönetim hizmetini isteyip istemediğimi soruyor burada “hayır” ı seçip devam ediyorum. Etiketler sekmesinde yapacağınız tanımlara göre kaynakları da kendi içinde gruplayabilmenizi sağlar, benim amacım henüz bu değil boş bırakıp geçiyorum. “Gözden geçir-oluştur” tab ında ise app service in son hali yer alıyor. Son kontrolü yapıp oluştur diyerek app service i oluşturuyoruz.

6
7

Oluşturduktan sonra yaklaşık bir 30 sn kadar işlemin tamamlanmasını bekliyoruz ve sonunda bize “tamamlandı” mesajını gösteriyor olacak.

7
8

App service planım ve kaynak gurubum statü olarak OK görünüyor. App Service’imizin ismi olan teacherloper’ın sayfasına gittiğimizde aşağıdaki görsele benzer bir sayfa sizi karşılayacaktır.

9
9

Linkimiz çalışıyor mu diye kontrol ediyoruz.

8
10

Sitemiz ayakta ve şu an Microsoft Azure’a ait bilgilendirici materyaller var.

9.cu görselimizdeki “Dağıtım Merkezi” butonu ile yazdığımız kodu azure a nasıl deploy edeceğiz onu kontrol edelim. Bağlanırken sizden Microsoft hesabınızı tekrar doğrulamanızı isteyebilir. Bu adımları geçtikten sonra sizi App Service in Dağıtım Merkezi sayfasına atar.

14
11

Bu sayfada dağıtımı hangi kaynaktan yapacağımızı seçeceğiz. Biz Azure Repos servisini seçeceğiz. Bu işlem ile localimizde yazdığımız kodu önceki adıyla TFS (team foundation server) yeni adıyla azure devops a göndereceğiz önce, sonra da yukarıdaki ekranda yer alan azure repos seçeneği ile devam ettiğimizde karşımıza çıkan seçeneklerden devops taki projemizi seçeceğiz.

Localdeki projenin azure devops a nasıl alınacağı ile ilgili daha önce yayınladığım yazının linkini bırakıyorum;

https://erolakgul.wordpress.com/2019/04/06/azure-devops-servisi-ile-projenin-paylasilmasi/

15
12

Bu adımda web uygulamamızı azure devops ortamına almış olduk.

Bu aşama için; “dağıtım merkezi” sayfamıza geri geliyoruz tekrar.

14
13

Sürekli Dağıtım Ağacı altındaki Azure Devops seçeneğini seçiyoruz ve en altta çıkacak olan Devam butonu ile bir sonraki ekrana geçiyoruz;

16
14

Bu ekranda bize derleme sağlayıcı olarak birini seçmemizi istiyor, Azure Pipelines’ı seçip devam ediyorum işleme;

17
15

Yapılandırma ekranımızda Azure devops kuruluşu yani sizin tfs teki hesabınızı seçiyorsunuz, gmail adresime kayıtlı olan hesabımı seçiyorum, proje kısmında yine yayına alacağımız olan projeyi seçiyoruz, depo kısmında hangi repo yu kullanacağımızı seçiyoruz, dal kısmında da branche mizi seçiyoruz. Derleme de framework olarak dotnet core u seçiyoruz. Devam diyoruz. Özet aşamasında

18
16

Bilgileri kontrol ettikten sonra “SON” butonu ile işlemi sonlandırıyoruz.

19
17

İşlemin başarıyla tamamlandığı bilgisini alıyoruz.

Projemize geri dönüyoruz ve sağ tık publish(yayınla) diyoruz. Açılan küçük ekranda ise sırasıyla önce AppService i sonra zaten bir app service oluşturduğumuz için select existing ( var olanı ) seçili yapıp sağ alttaki publish butonuna tıklıyoruz.

10
18
11
19

Açılan ekranda sağ üst köşede Microsoft hesabınızla bağlanmanızı isteyebilir yada doğrulama yapmanızı, o adımı atladıktan sonra Subscription altında azure da 12 aylık aboneliğinizi başlattıysanız seçebileceğiniz bir abonelik vardır. 2 nolu alanda azure portalda oluşturduğumuz kaynak grup adımız ve altında da app service adımız yer almaktadır. Onu seçersek alttaki OK butonu aktif olacaktır. OK butonuna tıklayıp devam ediyoruz.

12
20

1 nolu kısımda projemizin deploy edileceği profil olan teacherloper yer almakta. Site url’de yayın yapacağımız adres bulunmakta. Kaynak grup bilgimiz de hemen altında yer almakta fakat aşağıda output sekmesinde sonuçlarda csproj dosyamızda bir hata olduğu bilgisini görüyorum.

“the transformwebconfig task failed unexpectedly” hatasını alıyorum tekrar derlediğimde. Sorunu projem altındaki properties ağacı altında bulunan publishProfile klasöründeki xml dosyası içerisine

<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>

satırını ekleyerek çözüyorum..web config de bir ayar yapmadık ve o ayarları şimdilik kullanmayacağız.

Çıktı tabında hatayı gidermiş olduk.

13
21

Linkimizi ziyaret ettiğimizde projemizin yayında olduğunu da görüyoruz.

25
22

Son olarak,uygulamamızda güncelleme yaparak bunu yayına alalım tekrar.

Index.cshtml dosyamda birkaç değişiklik yapıyorum. Visual Studio ekranımda Teams Explorer sekmesinde değişiklikleri göndermek için “Change” butonunu kullanıyorum. Yorumu yazıp “commit all and push” seçeneğini kullanıyorum. (23 nolu görsel)

20
23

Projeyi tfs e gönderdikten sonra son olarak sağ tık publish ile yayınlıyoruz.

21
24

Profilimizi hatırlayacağı için sadece publish diyoruz.

Web deployment task failed. ((25.11.2019 09:36:11) An error occurred when the request was processed on the remote computer.)

Hatası alıyorum. Stackoverflow da birkaç araştırmadan sonra Publish xml dosyamdan <WebPublishMethod>MSDeploy</WebPublishMethod> satırını silmem gerektiğini anlıyorum, tekrar deniyorum yayınlamayı. Bu hatanın nedeni olarak farklı seçenekler de sunmuşlar. Zannediyorum ki ben visual studio’dan bu yayını yaparken azure web site’a kullanıcı doğrulama istiyor, tamamen nedeni bulunca burada editlerim.

22
25

Azure portalında açtığımız app service’e tıkladığımızda dağıtım merkezinden yaptığımız tüm publish işlemlerini görebiliriz.

23
26

 

Not: 18 numaralı görselde Kudu Derleme Hizmetini görmüştük ama azure pipelines ı seçmiştik.Kudu, azure web sitelerine deploy edebilmek için kullanılan servistir.. https://teacherloper.scm.azurewebsites.net/ linki ile de kudu servisine bağlanabiliyorum, siz de testinizi yaparken appserviceadını.scm.azurewebsites.net linki ile kudu servisinize erişebilirsiniz.

24
27

https://github.com/projectkudu/kudu/wiki linkinden ayrıntılı bilgiye ulaşılabilir.

Kaynakça:

https://docs.microsoft.com/en-us/learn/modules/publish-azure-web-app-with-visual-studio/

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-dotnet

https://erolakgul.wordpress.com/2019/04/06/azure-devops-servisi-ile-projenin-paylasilmasi/

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s