Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk İle Deploy Etme

Merhaba,

Bu içeriğimizde AWS CodePipeline aracını kullanarak Asp.NET Core WEB API uygulamasını AWS Elastic Beanstalk servisi üzerinden deploy edecek ve böylece AWS CodePipeline’ın, AWS CodeBuild’in ve AWS Elastic Beanstalk’ın temellerini öğrenmiş ve tecrübe etmiş olacağız. O halde vakit kaybetmeksizin buyurun başlayalım…

AWS Elastic Beanstalk Nedir?

AWS Elastic Beanstalk, uygulama geliştiricilerin ve ekiplerin web uygulamalarını ve servislerini hızlı bir şekilde deploy etmesine ve bir yandan da ölçeklendirmesine olanak tanıyan bir AWS servisidir.

Temel olarak, Elastic Beanstalk uygulamanızı çalıştırmanız için gerekli olan altyapı ve kaynakları otomatik olarak yönetmenizi ve böylece sunucu yönetimi gibi detaylara odaklanmaksızın uygulamanızı AWS’de hızla çalıştırmanızı sağlamaktadır.

Elastic Beanstalk servisinin avantajlarını ele almamız gerekirse eğer;

  • Kolay Deploy
    Uygulamanızın kodunu kolaylıkla Elastic Beanstalk ile entegre edebilir ve otomatik olarak compile edip, yapılandırıp, deploy edebilirsiniz.
  • Otomatik Ölçeklendirme
    Elastic Beanstalk, uygulamanızın yükünü otomatik olarak izleyecek ve gerektiği taktirde otomatik bir ölçeklendirme davranışı gerçekleştirecektir. Böylece, artan taleplere karşın etkin uyum sağlanabilecek ve uygulamanızın performansını koruyabileceksiniz.
  • Sunucu ve Altyapı Detaylarından Kurtulma
    Elastic Beanstalk, altyapı ve sunucu yönetimiyle ilgili ayrıntıları sizin yerinize hallecektir. Böylece daha çok uygulamanızın ihtiyaç ve işlevselliklerinin geliştirilmesine odaklanabileceksiniz.
  • Çeşitli Platform Desteği
    Elastic Beanstalk, birden çok programlama dili ve platform için destek sağlamaktadır. Bu sayede farklı programlama dillerinde, teknolojilerinde yahut platformlarda geliştirilmiş uygulamaları hızla deploy edip, ayağa kaldırabilirsiniz.
  • Özelleştirme
    İhtiyaç doğrultusunda Elastic Beanstalk ortamınızı kendinize göre özelleştirebilirsiniz.

şeklinde özetleyebiliriz.

Ayrıca şunu da bilmenizde fayda vardır ki; Elastic Beanstalk, uygulamanızı desteklemek için birden fazla AWS servisinden istifade edebilmekte ve bunu yaparken de sizin için bu servislerin yönetimini büyük ölçüde otomatize edebilmektedir. Bu sayede hızlı bir şekilde uygulamanızı geliştirebilecek, deploy edebilecek ve ölçeklendirebileceksiniz.

AWS CodePipeline Nedir?

AWS CodePipeline, sürekli entegrasyon ve sürekli dağıtım(CI/CD) süreçlerini otomatikleştirmek için kullanılan bir servistir. AWS CodePipeline, yazılımın geliştirilme aşamalarını otomatikleştirmek ve farklı servisler ve bileşenler arasında sorunsuz bir şekilde taşıma yapmak için tasarlanmıştır. Bu servis sayesinde, kod değişiklikleri sürekli olarak test edilebilmekte, otomatik olarak merge işlemleri gerçekleştirilmekte ve hedef sunuculara hızlıca deploy yapılabilmektedir.

AWS CodePipeline’ın oluştuğu aşamalar şunlardan ibarettir;

  • Kaynak Aşaması (Source Stage)
    Bu aşamada; AWS CodeCommit, GitHub, Amazon S3 vs. gibi çeşitli kod depolama hizmetlerinden veya sürüm kontrol sistemlerinden kod kaynakları edinilir.
  • Derleme ve Test Aşamaları (Build And Test Stages)
    Edinilen kaynak kodu derlenir, test edilir ve hatalar tespit edilir. Bu aşamada, kodun işlevselliği ve kalitesi doğrulanır.
  • Dağıtım Aşamaları (Deployment Stages)
    Derlenmiş ve test edilmiş kod; development, test veya production gibi farklı ortamlara otomatik olarak dağıtılır. AWS CodeDeploy, ECS(Elastic Container Service), AWS Lambda vs. gibi farklı servislerle entegrasyon sağlayarak deploy’lar gerçeleştirilir.
  • Onaylama İşlemleri (Approval Actions)
    Tüm bu süreçte isteğe bağlı olarak, belirli aşamalardan geçen kod değişikliklerini onaylamak veya reddetmek üzere insan onayını içeren işlemler eklenebilir.

AWS CodeBuild Nedir?

AWS CodeBuild, yazılım projelerinin otomatik olarak derlenmesi(build) ve test edilmesi için kullanılan, sürekli entegrasyon ve sürekli dağıtım(CI/CD) süreçlerini desteklemek için tasarlanmış bir servistir. Böylece CodeBuild sayesinde, yazılım geliştirme sürecinin bir parçası olan kod derleme ve test aşamaları otomatikleştirilebilmektedir.

AWS CodeBuild’in temel özelliklerine değinmemiz gerekirse eğer;

  • Otomatik ve Ölçeklenebilir Build Hizmeti
    CodeBuild, projenizi otomatik olarak derlenmek ve test etmek için ihtiyaç duyduğunuz kaynakları sağlamakta, projenizin boyutuna ve karmaşıklığına bağlı olarak ölçeklenebilmekte ve yönetilebilmektedir.
  • Farklı Platform Desteği
    CodeBuild; çeşitli programlama dilleri ile platformlar için destek sağlamakta ve böylece farklı projelerin ve uygulamaların kolayca entegre edilebilmesini sağlamaktadır.
  • Özelleştirilebilir Build Ortamı
    CodeBuild’de kendi derleme ortamlarınızı oluşturabilir ve yapılandırabilirsiniz.
  • Entegrasyon
    AWS CodePipeline, AWS CodeCommit, GitHub gibi servislerle entegre olarak kullanılabilmekte ve böylece CI/CD süreçlerine kolayca dahil edilebilmektedir.
  • Test Otomasyonu
    Kodunuzu test etmeniz için özelleştirilmiş test senaryoları ve otomasyon araçları kullanabilir ve böylece yazılım kalitesini sağlayabilirsiniz.
  • Güvenlik ve İzleme
    CodeBuild, güvenli bir şekilde projelerinizi derlemekte ve test edebilmektedir. Ayrıca, build sürecinin ilerlemesini ve sonuçlarını izlemek için loglara da erişim sağlayabilmektedir.

AWS İle CI/CD’yi Anlamak

Sürekli Entegrasyon(Continuous Integration) ve Sürekli Dağıtım(Continuous Deployment/Delivery) kısaltmaları olarak kullanılan CI/CD kavramları, yazılım geliştirme süreçlerinde önemli yaklaşımları ifade etmektedirler. AWS gibi cloud service provider’ları, bu süreçleri desteklemek için bir dizi hizmet sunmaktadırlar.

CI/CD kavramlarına, AWS açısından göz attığımızda aşağıdaki bazı temel noktaları gözlemlemekteyiz;

Sürekli Entegrasyon(Continuous Integration/CI)

Sürekli entegrasyon, geliştiricilerin farklı ekipler veya bireyler olarak yaptığı kod değişikliklerini düzenli olarak bir araya getirme sürecini ifade eder. Amacı, bu değişikliklerin kod tabanına sorunsuz bir şekilde entegre edilmesini sağlamaktır.

CI süreçlerinde genellikle aşağıdaki işlemler gerçekleştirilmektedir;

  • Farklı geliştiricilerin yaptığı kod değişikleri düzenli olarak birleştirilir.
  • Birleştirme sonrası otomatik testler çalıştırılır ve hatalar tespit edilir.
  • Hataların erken aşamada tespit edilmesi, yazılımın kalitesini arttırır.
Sürekli Dağıtım(Continuous Deployment/Delivery/CD)

Sürekli dağıtım, CI sürecinin bir adım ötesidir. Bu aşamada, kod değişiklikleri başarılı bir şekilde birleştirildikten ve otomatik test edildikten sonra, üretim ortamına otomatik dağıtım süreci başlar.

  • Continuous Deployment : Otomatik testlerden başarıyla geçen kod değişiklikleri, hiçbir insan müdahalesi olmaksızın otomatik olarak üretim ortamına deploy edilirler.
  • Continuous Delivery : Otomatik testlerden başarıyla geçen kod değişiklikleri, üretim ortamına dağıtılmadan önce insan onayına ihtiyaç duyulan aşamada bekletilir.
AWS İle CI/CD

AWS, yazılım geliştirme süreçlerinizi desteklemek için aşağıdaki hizmetleri sunmaktadır;

  • AWS CodeCommit : Kod depolama hizmeti.
  • AWS CodeBuild : Otomatik derleme ve test hizmeti.
  • AWS CodePipeline : Sürekli entegrasyon ve dağıtım hizmeti.
  • AWS CodeDeploy : Uygulamaları farklı hedef ortamlara dağıtma hizmeti.
  • AWS Elastic Beanstalk : Kolayca ölçeklenebilen uygulama platformu.

Tüm bu hizmetler; kodu otomatik olarak derlemek, test etmek, birleştirmek ve dağıtmak için kullanılmaktadırlar.

İçerikte Seyredeceğimiz Noktalara Hızlıca Değinirsek…!

Mevzu bahis içeriğimizde ele alacağımız AWS servislerini ve uygulayacağımız terminolojik davranışları özet mahiyetinde masaya yatırdığımıza göre, yazı sürecinde seyredeceğimiz adımları da hızlıca değerlendirmekte fayda görmekteyim.

  1. İçeriğimizde örnek amaçlı geliştireceğimiz bir Asp.NET Core Web API uygulamasını CI/CD davranışları eşliğinde AWS CodePipeline’ı kullanarak AWS Elastic Beanstalk aracılığıyla nasıl deploy edeceğimizi inceliyor olacağız.
  2. Süreçte uygulamayı GitHub Repository’sine atacak ve sonrasında da AWS üzerinden Elastic Beanstalk’ı yapılandıracak ve bu yapılandırmada GitHub Repository’sine erişim izni veriyor olacağız.
  3. Uygulamayı derlemek için ise AWS CodeBuild’den istifade edeceğiz.
  4. Eğer her şey yolunda giderse, nihai olarak uygulamaya herkesin erişebileceği bir endpoint eşliğinde cloud’a deploy etmiş olacağız.

AWS CodePipeline kullanarak Asp.NET Core Web API Uygulamasını AWS Elastic Beanstalk’a Deploy Etme

  • Adım 1 (Asp.NET Core Uygulamasının Oluşturulması | buildspec.yml ve Procfile Dosyalarının Tanımlanması)
    Tüm çalışmada örnek amaçlı kullanacağımız bir Asp.NET Core Web API uygulaması yanında, uygulamanın solution dizininde aşağıdaki içeriklerde olacak şekilde ‘buildspec.yml’ ve ‘Procfil’ isimli AWS CodeBuild yapılandırma dosyalarını oluşturalım.

    builderspec.yml;

    version: 0.2
    
    phases:
      install:
        runtime-versions:
          dotnet: 7.0
      pre_build:
        commands:
          - dotnet restore AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example.csproj
      build:
        commands:
          - dotnet build AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example.csproj
      post_build:
        commands:
          - dotnet publish -c Release -o ./app/ AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example.csproj
          
    artifacts:
      files: '**/*'
    

    Bu yapılandırma dosyasında, AWS Elastic Beanstalk ile deploy edilecek DLL’lerin bilgisi ve publish için AWS CodeBuild projesi tarafından baz alınacak derleme ve yayınlama talimatları mevcuttur.

    Procfile;

    web: dotnet ./app/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example.dll
    

    Procfile dosyasında ise uygulamanın nasıl çalıştırılacağı ve yönetileceği tanımlanmaktadır. Bu dosyanın adı da zaten işlevine uygun bir şekilde (Process File) kökünden gelmektedir. Uygulamanın derlenmesi neticesinde birçok .dll dosyası üretilecektir. Bizler Procfile dosyası sayesinde uygulamanın hangi .dll üzerinden çalışacağını yukarıdaki gibi belirtmekte ve böylece uygulamayı cloud’a deploy ettiğimizde ayağa kaldırıcı noktayı anlamasında yardımcı olabilmekteyiz.

    Ayrıca oluşturduğumuz Web API uygulamasında default gelen controller’ı silelim ve test amaçlı aşağıdaki minimal api’yi ekleyelim.

    .
    .
    .
    app.MapGet("/", () =>
    {
        Console.WriteLine("Hi");
        return "Hi";
    });
    .
    .
    .
    
  • Adım 2 (AWS Elastic Beanstalk Ortamının Ayarlanması)
    AWS Elastic Beanstalk ortamının ayarlanabilmesi için EC2 instance profile‘ına ihtiyacımız olackatır. Dolayısıyla ilk olarak bu profili oluşturmaya odaklanalım. Bunun için IAM servisi üzerinden rollere gelelim ve yeni bir rol oluşturalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeBurada oluşturulacak role AWSElasticBeanstalkWebTier, AWSElasticBeanstalkWorkerTier ve AWSElasticBeanstalkMulticontainerDocker politikalarını ekleyelim.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeVe son olarakta bu rolün adını ‘AWSElasticBeanstalk-Role’ olarak ayarlayıp, oluşturalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeŞimdi bu aşamadan sonra ‘Elastic Beanstalk’ servisine gelip, gerekli ortam konfigürasyonlarında bulunabiliriz.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etmeİlgili servise girdikten sonra sol menüde ‘Environments’ sekmesindeyken sağdaki ‘Create environments’ butonuna tıklayalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeArdından açılan sayfada aşağıdaki gibi temel konfigürasyonları gerçekleştirelim.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etmeİkinci adımdaki ‘Configure service access’ kısmı bu noktada önem arz etmektedir. Burada aşağıdaki gibi biraz önce oluşturduğumuz ‘EC2 instance profile’i eşliğinde gerekli yapılandırmalarda bulunalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeVe tüm bu ayarlar doğrultusunda AWS Elastic Beanstalk ortamını oluşturalım. Tabi burada EC2 cloud server’ın, load balancer’ın, ölçekleyicilerin ve diğer gerekli olan temel kaynakların oluşturulması 3-5 dakikayı bulacaktır.

    Nihai olarak tüm konfigürasyonel hazırlıklar başarıyla tamamlandıktan sonra Web API uygulamamızın deploy edileceği URL tarafımıza verilecektir.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeURL’e göz attığımızda aşağıdaki gibi bir neticeyle karşılaşmaktayız.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAyrıca AWS Elastic Beanstalk’ın nasıl çalıştığına dair fikir edinebilmek için servisin aşağısındaki loglara göz atmanızı tavsiye ederim. Burada oluşturulan tüm kaynakları açıkça gözlemleyebilir, çapraz kontrol sağlayabilirsiniz.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme

  • Adım 3 (AWS CodePipeline Servisinin Oluşturulması ve Uygulamanın GitHub’dan Çekilmesi)
    Artık Elastic Beanstalk servisimiz çalışır durumda olduğuna göre uygulamanın publish’ini Beanstalk ortamına deploy edecek olan AWS CodePipeline servisini de oluşturabiliriz. Bunun için öncelikle uygulamamızı GitHub’a atalım, ardından AWS CodePipeline servisine gelerek, aşağıdaki gibi bir pipeline oluşturalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeTabi burada GitHub üzerinden repository’lerin erişimi için Amazon’a gerekli yetkilerin verilmesi gerektiğini söylemekte fayda var.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme3. adımda bir proje adı oluşturabilmek için ‘Create project’ butonu eşliğinde aşağıdaki gibi gerekli tanımlamada bulunalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAynı şekilde environment için de aşağıdaki yapılandırmaları gerçekleştirelim.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeVe son olarak da yukarıdaki adımlarda oluşturduğumuz buildspec dosyasını da aşağıdaki gibi bildirelim.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme4. adımda ise aşağıdaki gibi dağıtım konfigürasyonunu gerçekleştirelim.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeBurada dikkat ederseniz, ‘Deploy provider’ olarak ‘AWS Elastic Beanstalk’ı geçiyoruz ve ‘Application name’ olarak da 2. adımda oluşturduğumuz uygulamayı belirtiyoruz.

    Ve nihai olarak yapmış olduğumuz bu konfigürasyonlar neticesinde CodePipeline servisini aşağıdaki verilen review eşliğinde oluşturuyoruz.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme

  • Ara Adım (AWS CodePipeline Servisini Keşfedelim)
    Şimdi oluşturduğumuz pipeline’a göz atarsak eğer aşağıdaki görselde olduğu gibi ‘Source’, ‘Build’ ve ‘Deploy’ aşamalarından ibaret olduğunu göreceğiz.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme

    1. Source
      GitHub’dan kodun çekildiği aşamadır.
    2. Build
      buildspec.yml dosyasındaki talimatları kullanarak uygulamanın derlendiği ve publish edildiği aşamadır.
    3. Deploy
      Publish edilen uygulamanın AWS Elastic Beanstalk’a deploy edildiği aşamadır.

    Bu aşamalardan herhangi birinde olası bir başarısızlık, bir sonraki aşamanın yürütülmesini engelleyecektir. Bizim yaptığımız çalışmada ise pipeline’ımızın maşallahı olduğunu söyleyebiliriz ki tüm aşamaların başarılı bir şekilde geçildiği aşikardır.

    Velhasıl pipeline’ın sonuncu aşaması olan ‘Deploy’ aşamasında, uygulamanın hangi AWS Elastic Beanstalk’a deploy edildiğinin adresi bizlere çıktı olarak aşağıdaki görseldeki gibi verilmektedir.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etmeİlgili adrese tıklayarak, oluşturduğumuz Elastic Beanstalk uygulamasına gelelim ve ardından aşağıdaki gibi vermiş olduğu domain url’sine tıklayarak deploy edilen uygulamayı tarayıcıda açalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeAWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeGörüldüğü üzere uygulamamız gayet sağlıklı bir şekilde deploy edilmiş vaziyette, çalışmaktadır…

  • Adım 4 (AWS Elastic Beanstalk’ta Environment Konfigürasyonunu Sağlama)
    Yapmış olduğumuz bu çalışmada, development ortamında işlevselliğini kazanacak olan swagger arayüzünü de etkinleştirmek istiyorsak eğer bunun için AWS Elastic Beanstalk’ta ASPNETCORE_ENVIRONMENT environment değerini ‘Development’ olarak ayarlamamız gerekmektedir. Bu işlem için ise aşağıdaki görselde olduğu gibi Elastic Beanstalk servisinde, sol menü üzerinden ‘Configuration’ sekmesine, oradan da açılan ekranda ‘Updates, monitoring, and logging’ bölümüne gelerek ‘Edit’ butonuna tıklayalım. Sonrasında ise en aşağıdaki ‘Environment properties’ kısmından da, bahsedilen environment variable’ı girelim ve ‘Apply’ butonuna tıklayarak süreci tamamlayalım.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy EtmeBu işlemden sonra yaklaşık 30 saniye zarfında uygulamaya dair environment variable’lar güncellenecektir. Ee haliyle url’in sonuna /swagger ekleyerek tekrar istekte bulunduğumuzda swagger arayüzünün de etkinleştirildiğini görüyor olacağız.AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk'a Deploy Etme

Yapılan bu çalışmalar neticesinde; ne zaman ki uygulamanın GitHub reposunda yeni bir commit gelir o zaman AWS CodePipeline servisi yeni sürümü çekerek, build edecek ve ardından da deploy işlemlerini başlatacaktır. Yani anlayacağınız pipeline’daki tüm süreçler otomatik olarak baştan başlatılacaktır. Böylece, basit düzeyde bir uygulama üzerinden CI/CD pipeline’ını örneklendirmiş ve bununla beraber AWS CodePipeLine, AWS CodeBuild ve AWS Elastic Beanstalk olmak üzere üç adet AWS servisini tanımış ve tecrübe etmiş olduk. Özellikle AWS CodePipeLine servisi ile Asp.NET Core uygulamalarını bir kaç saniye içinde production’a hazır hale otomatik olarak getirmeyi ve AWS Elastic Beanstalk servisi ile de oldukça basit bir süreç eşliğinde deploy etmeyi öğrenmiş olduk.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Not : Örnek projeyi aşağıdaki github adresinden edinebilirsiniz.
https://github.com/gncyyldz/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example

Bunlar da hoşunuza gidebilir...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir