Azure yay bulutuna uygulama dağıtımlarını otomatikleştirin
bu makalede, uygulamaları dağıtmak üzere Azure Pipelines için Azure yay bulutu görevinin nasıl kullanılacağı gösterilmektedir.
Sürekli tümleştirme ve sürekli teslim araçları, var olan uygulamalara en az çaba ve riske sahip güncelleştirmeleri hızlı bir şekilde dağıtmanızı sağlar. Azure DevOps, bu anahtar işleri düzenlemenize ve denetlemenize yardımcı olur.
Aşağıdaki videoda, Azure Pipelines dahil olmak üzere istediğiniz araçları kullanarak uçtan uca otomasyon açıklanmaktadır.
Azure Resource Manager hizmet bağlantısı oluşturma
ilk olarak, Azure DevOps projenize bir Azure Resource Manager hizmet bağlantısı oluşturun. yönergeler için bkz. Microsoft Azure Bağlan. Azure yay bulut hizmeti örneğiniz için kullanmakta olduğunuz aboneliği seçtiğinizden emin olun.
Uygulama oluşturma ve dağıtma
Artık projelerinize bir dizi görev kullanarak derleme ve dağıtım yapabilirsiniz. aşağıdaki Azure Pipelines şablonu, uygulamayı derlemek için bir .net Core görevi ve uygulamayı dağıtmak için bir Azure yay bulut görevi olan değişkenleri tanımlar.
variables:
workingDirectory: './steeltoe-sample'
planetMainEntry: 'Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll'
solarMainEntry: 'Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll'
planetAppName: 'planet-weather-provider'
solarAppName: 'solar-system-weather'
serviceName: '<your service name>'
steps:
# Restore, build, publish and package the zipped planet app
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
arguments: '--configuration Release'
zipAfterPublish: false
modifyOutputPath: false
workingDirectory: $(workingDirectory)
# Deploy the planet app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(planetAppName)/publish-deploy-planet.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(planetMainEntry)
# Deploy the solar app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(solarMainEntry)
Azure Spring Cloud örneği ve bir Azure DevOps projesi ayarlama
İlk olarak, Azure DevOps ile kullanmak üzere mevcut bir Azure yay bulutu örneğini ayarlamak için aşağıdaki adımları kullanın.
- Azure Spring Cloud örneğinize gidin ve yeni bir uygulama oluşturun.
- Azure DevOps portalına gidin ve seçtiğiniz kuruluş altında yeni bir proje oluşturun. Azure DevOps kuruluşunuz yoksa, ücretsiz olarak bir tane oluşturabilirsiniz.
- Repos' yi seçin ve ardından Spring Boot demo kodunu depoya aktarın.
Azure Resource Manager hizmet bağlantısı oluşturma
sonra, Azure DevOps projenize bir Azure Resource Manager hizmet bağlantısı oluşturun. yönergeler için bkz. Microsoft Azure Bağlan. Azure yay bulut hizmeti örneğiniz için kullanmakta olduğunuz aboneliği seçtiğinizden emin olun.
Uygulama oluşturma ve dağıtma
Artık projelerinize bir dizi görev kullanarak derleme ve dağıtım yapabilirsiniz. Aşağıdaki bölümlerde, Azure DevOps kullanarak uygulamanızı dağıtmaya yönelik çeşitli seçenekler gösterilmektedir.
İşlem hattı kullanarak dağıtma
İşlem hattı kullanarak dağıtmak için aşağıdaki adımları izleyin:
Pipelines' yi seçin ve ardından maven şablonuyla yeni bir işlem hattı oluşturun.
Azure-Pipelines. yıml dosyasını düzenleyerek
mavenPomFilealanı ' Tamam/pom.xml ' olarak ayarlayın.Sağ tarafta yardımcıyı göster ' i seçin ve ardından Azure yay bulutu şablonunu seçin.
Azure aboneliğiniz için oluşturduğunuz hizmet bağlantısını seçin ve ardından yay bulut örneğinizi ve uygulama örneğinizi seçin.
Hazırlama dağıtımını devre dışı bırak.
Package veya Folder 'ı, tamamlanacak/Target/Spring-Boot-Complete-0.0.1-Snapshot. jar olarak ayarlayın.
Bu görevi ardışık düzene eklemek için Ekle ' yi seçin.
İşlem hattı ayarlarınız aşağıdaki görüntüyle eşleşmelidir.
Ayrıca, aşağıdaki işlem hattı şablonunu kullanarak projelerinizi oluşturabilir ve dağıtabilirsiniz. Bu örnek öncelikle uygulamayı derlemek için bir Maven görevi tanımlar ve ardından Azure Pipelines için Azure yay bulutu görevini kullanarak JAR dosyasını dağıtan ikinci bir görevdir.
steps: - task: Maven@3 inputs: mavenPomFile: 'complete/pom.xml' - task: AzureSpringCloud@0 inputs: azureSubscription: '<your service connection name>' Action: 'Deploy' AzureSpringCloud: <your Azure Spring Cloud service> AppName: <app-name> UseStagingDeployment: false DeploymentName: 'default' Package: ./target/your-result-jar.jarKaydet ve Çalıştır' ı seçin, sonra işin bitmesini bekleyin.
Mavi-yeşil dağıtımlar
Önceki bölümde gösterilen dağıtım, dağıtım sırasında uygulama trafiğini hemen alır. Bu, herhangi bir müşteri trafiği almadan önce uygulamayı üretim ortamında test etmenizi sağlar.
İşlem hattı dosyasını düzenleme
Uygulamayı daha önce gösterilen şekilde oluşturmak ve bir hazırlama dağıtımına dağıtmak için aşağıdaki şablonu kullanın. Bu örnekte, hazırlama dağıtımı zaten var olmalıdır. Alternatif bir yaklaşım için bkz. mavi yeşil dağıtım stratejileri.
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: true
Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Set Production'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: true
Yayınlar bölümünü kullanma
Aşağıdaki adımlarda, yayınlar bölümünden mavi yeşil bir dağıtımın nasıl etkinleştirileceği gösterilmektedir.
Pipelines seçin ve maven derleme ve yayımlama yapıtı için yeni bir işlem hattı oluşturun.
- kod konumunuz için Git Azure Repos seçin.
- Kodunuzun bulunduğu bir depoyu seçin.
- Maven şablonunu seçin ve alanı olarak ayarlanacak dosyayı değiştirin
mavenPomFilecomplete/pom.xml. - Sağ tarafta yardımcıyı göster ' i seçin ve Yapı yapıtları Yayımla şablonunu seçin.
- Tüm/Target/Spring-Boot-Complete-0.0.1-SNAPSHOT. jar öğesine yayımlanacak yolu ayarlayın.
- Kaydet ve çalıştır’ı seçin.
Sürümler' i ve sonra yayın oluştur' u seçin.
Yeni bir işlem hattı ekleyin ve iş oluşturmak için boş iş ' ı seçin.
Aşamalar altında 1. satırı , 0 görevi seçin
- + İşe görev eklemek için öğesini seçin.
- Azure yay bulutu şablonunu arayın ve sonra görevi işe eklemek için Ekle ' yi seçin.
- Azure yay bulut dağıtımı: görevi düzenlemek için seçin.
- Bu görevi uygulamanızın bilgileriyle doldurup hazırlama dağıtımını kullan' ı devre dışı bırakın.
- Mevcut değilse yeni bir hazırlama dağıtımı oluşturun' i etkinleştirin ve sonra dağıtımda bir ad girin.
- Bu görevi kaydetmek için Kaydet ' i seçin.
- Tamam’ı seçin.
İşlem hattı' nı seçin ve ardından yapıt Ekle' yi seçin.
- Kaynak (derleme işlem hattı) altında, daha önce oluşturulan işlem hattını seçin.
- Ekle' yi ve ardından Kaydet' i seçin.
1 iş, aşamalar altında 1 görev seçin.
1. aşama' da Azure yay bulutu dağıtım görevi ' ne gidin, ardından paket veya klasör' in yanındaki üç noktayı seçin.
İletişim kutusunda Spring-Boot-Complete-0.0.1-SNAPSHOT. jar dosyasını seçin ve ardından Tamam' ı seçin.
+ İşe başka bir Azure yay bulutu görevi eklemek için öğesini seçin.
Üretim dağıtımını ayarlamak için eylemi değiştirin.
Dağıtımı otomatik olarak başlatmak için Kaydet' i ve ardından yayın oluştur ' u seçin.
Uygulamanızın geçerli sürüm durumunu doğrulamak için yayını görüntüle' yi seçin. Bu görev bittikten sonra, uygulamanızın durumunu doğrulamak için Azure portal ziyaret edin.
Kaynaktan dağıt
Ayrı bir derleme adımı olmadan doğrudan Azure 'a dağıtmak için aşağıdaki işlem hattı şablonunu kullanın.
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Cloud service>
AppName: <app-name>
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(Build.SourcesDirectory)