Share via


Azure Spring Apps'e uygulama dağıtımlarını otomatikleştirme

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede, uygulamaları dağıtmak için Azure Pipelines için Azure Spring Apps görevinin nasıl kullanılacağı gösterilmektedir .

Sürekli tümleştirme ve sürekli teslim araçları, güncelleştirmeleri en az çaba ve riskle mevcut uygulamalara hızla dağıtmanıza olanak tanır. Azure DevOps, bu önemli işleri düzenlemenize ve denetlemenize yardımcı olur.

Aşağıdaki videoda Azure Pipelines dahil olmak üzere seçtiğiniz araçları kullanarak uçtan uca otomasyon açıklanmaktadır.


Azure Resource Manager hizmet bağlantısı oluşturma

İlk olarak, Azure DevOps projenize bir Azure Resource Manager hizmet bağlantısı oluşturun. Yönergeler için bkz. Microsoft Azure'a Bağlan. Azure Spring Apps hizmet örneğiniz için kullandığınız aboneliği seçtiğinizden emin olun.

Uygulama oluşturma ve dağıtma

Artık bir dizi görevi kullanarak projelerinizi derleyebilir ve dağıtabilirsiniz. Aşağıdaki Azure Pipelines şablonu değişkenleri, uygulamayı oluşturmaya yönelik bir .NET Core görevini ve uygulamayı dağıtmak için bir Azure Spring Apps görevini 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'
    DeploymentType: 'Artifacts'
    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'
    DeploymentType: 'Artifacts'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
    RuntimeVersion: 'NetCore_31'
    DotNetCoreMainEntryPath: $(solarMainEntry)

Azure Spring Apps örneği ve Azure DevOps projesi ayarlama

İlk olarak, mevcut bir Azure Spring Apps örneğini Azure DevOps ile kullanmak üzere ayarlamak için aşağıdaki adımları kullanın.

  1. Azure Spring Apps örneğine gidin ve yeni bir uygulama oluşturun.
  2. Azure DevOps portalına gidin ve seçtiğiniz kuruluş altında yeni bir proje oluşturun. Azure DevOps kuruluşunuz yoksa ücretsiz bir kuruluş oluşturabilirsiniz.
  3. Depolar'ı seçin, ardından Spring Boot tanıtım kodunu depoya aktarın.

Azure Resource Manager hizmet bağlantısı oluşturma

Ardından, Azure DevOps projenize bir Azure Resource Manager hizmet bağlantısı oluşturun. Yönergeler için bkz. Microsoft Azure'a Bağlan. Azure Spring Apps hizmet örneğiniz için kullandığınız aboneliği seçtiğinizden emin olun.

Uygulama oluşturma ve dağıtma

Artık bir dizi görevi kullanarak projelerinizi derleyebilir ve dağıtabilirsiniz. Aşağıdaki bölümlerde Azure DevOps kullanarak uygulamanızı dağıtmak için çeşitli seçenekler gösterilmektedir.

İşlem hattı kullanarak dağıtma

İşlem hattı kullanarak dağıtmak için şu adımları izleyin:

  1. İşlem hatları'nın ardından Maven şablonuyla yeni bir işlem hattı oluşturun.

  2. alanı 'complete/pom.xml' olarak ayarlamak mavenPomFile için azure-pipelines.yml dosyasını düzenleyin.

  3. Sağ taraftaki Yardımcıyı göster'i ve ardından Azure Spring Apps şablonunu seçin.

  4. Azure Aboneliğiniz için oluşturduğunuz hizmet bağlantısını ve ardından Azure Spring Apps örneğinizi ve uygulama örneğinizi seçin.

  5. Hazırlama Dağıtımı Kullan'ı devre dışı bırakın.

  6. Paket veya klasörü tamamlamak/hedeflemek/spring-boot-complete-0.0.1-SNAPSHOT.jar olarak ayarlayın.

  7. Bu görevi işlem hattınıza eklemek için Ekle'yi seçin.

    İşlem hattı ayarlarınız aşağıdaki görüntüyle eşleşmelidir.

    Yeni işlem hattı ayarlarını gösteren Azure DevOps'un ekran görüntüsü.

    Ayrıca aşağıdaki işlem hattı şablonunu kullanarak projelerinizi derleyebilir ve dağıtabilirsiniz. Bu örnek ilk olarak uygulamayı derlemek için bir Maven görevi, ardından Azure Pipelines için Azure Spring Apps görevini kullanarak JAR dosyasını dağıtan ikinci bir görev tanımlar.

    steps:
    - task: Maven@3
      inputs:
        mavenPomFile: 'complete/pom.xml'
    - task: AzureSpringCloud@0
      inputs:
        azureSubscription: '<your service connection name>'
        Action: 'Deploy'
        AzureSpringCloud: <your Azure Spring Apps service>
        AppName: <app-name>
        DeploymentType: 'Artifacts'
        UseStagingDeployment: false
        DeploymentName: 'default'
        Package: ./target/your-result-jar.jar
    
  8. Kaydet ve çalıştır'ı seçin ve işin tamamlanmasını bekleyin.

Mavi-yeşil dağıtımlar

Önceki bölümde gösterilen dağıtım, dağıtımdan hemen sonra uygulama trafiğini 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österildiği gibi derlemek 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ının zaten mevcut olması gerekir. 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 Apps service>
    AppName: <app-name>
    DeploymentType: 'Artifacts'
    UseStagingDeployment: true
    Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Set Production'
    AzureSpringCloud: <your Azure Spring Apps service>
    AppName: <app-name>
    UseStagingDeployment: true

Sürümler bölümünü kullanma

Aşağıdaki adımlarda, Sürümler bölümünden mavi-yeşil dağıtımın nasıl etkinleştirileceği gösterilmektedir .

  1. İşlem hatları'yı seçin ve Maven derlemeniz ve yayımlama yapıtınız için yeni bir işlem hattı oluşturun.

    1. Kod konumunuz için Azure Repos Git'i seçin.
    2. Kodunuzun bulunduğu bir depo seçin.
    3. Maven şablonunu seçin ve alanını complete/pom.xmlolarak ayarlamak mavenPomFile için dosyayı değiştirin.
    4. Sağ taraftaki Yardımcıyı göster'i seçin ve Derleme yapıtlarını yayımla şablonunu seçin.
    5. Yayımlamak için Yolu tamamlandı/hedef/spring-boot-complete-0.0.1-SNAPSHOT.jar olarak ayarlayın.
    6. Kaydet ve çalıştır'ı seçin.
  2. Yayınlar'ı ve ardından Yayın oluştur'u seçin.

  3. Yeni bir işlem hattı ekleyin ve bir iş oluşturmak için İşi boşalt'ı seçin.

  4. Aşamalar'ın altında 1. satır işi, 0 görevi seçin

    1 iş, 0 görev bağlantısının vurgulandığı İşlem Hatları sekmesini gösteren Azure DevOps'un ekran görüntüsü.

    1. + göreve görev eklemek için öğesini seçin.
    2. Görevi işe eklemek için Azure Spring Apps şablonunu arayın ve Ekle'yi seçin.
    3. Görevi düzenlemek için Azure Spring Apps Dağıtımı: öğesini seçin.
    4. Bu görevi uygulamanızın bilgileriyle doldurun, ardından Hazırlama Dağıtımını Kullan'ı devre dışı bırakın.
    5. Yoksa Yeni hazırlama dağıtımı oluştur'u etkinleştirin, ardından Dağıtım'a bir ad girin.
    6. Bu görevi kaydetmek için Kaydet'i seçin.
    7. Tamam'ı seçin.
  5. İşlem Hattı'nın ardından Yapıt ekle'yi seçin.

    1. Kaynak (derleme işlem hattı) altında daha önce oluşturulan işlem hattını seçin.
    2. Ekle'yi ve ardından Kaydet'i seçin.
  6. Aşamalar'ın altında 1 iş, 1 görev'i seçin.

  7. Aşama 1'de Azure Spring Apps Dağıtımı görevine gidin, ardından Paketle veya klasörün yanındaki üç noktayı seçin.

  8. İletişim kutusunda spring-boot-complete-0.0.1-SNAPSHOT.jar'ı ve ardından Tamam'ı seçin.

    Dosya veya klasör seçin iletişim kutusunu gösteren Azure DevOps'un ekran görüntüsü.

  9. + İşe başka bir Azure Spring Apps görevi eklemek için öğesini seçin.

  10. Eylemi Üretim Dağıtımını Ayarla olarak değiştirin.

  11. 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 yayın durumunu doğrulamak için Yayını görüntüle'yi seçin. Bu görev tamamlandıktan sonra uygulamanızın durumunu doğrulamak için Azure portalını ziyaret edin.

Kaynaktan dağıtma

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 Apps service>
    AppName: <app-name>
    DeploymentType: 'Artifacts'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(Build.SourcesDirectory)

Özel görüntüden dağıtma

Mevcut bir kapsayıcı görüntüsünden doğrudan 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 Apps service>'
    AppName: '<app-name>'
    DeploymentType: 'CustomContainer'
    UseStagingDeployment: false
    DeploymentName: 'default'
    ContainerRegistry: 'docker.io'  # or your Azure Container Registry, e.g: 'contoso.azurecr.io'
    RegistryUsername: '$(username)'
    RegistryPassword: '$(password)'
    ContainerImage: '<your image tag>'

Oluşturucu dağıtma ve belirtme (yalnızca Kurumsal plan)

Azure Spring Apps Enterprise planını kullanıyorsanız, aşağıdaki örnekte gösterildiği gibi seçeneğini kullanarak dağıtım eylemleri için hangi oluşturucunun builder kullanılacağını da belirtebilirsiniz. Daha fazla bilgi için bkz . Tanzu Derleme Hizmeti'ni kullanma.

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your-service-connection-name>'
    Action: 'Deploy'
    AzureSpringCloud: '<your-Azure-Spring-Apps-service-instance-name>'
    AppName: '<app-name>'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: './target/your-result-jar.jar'
    Builder: '<your-Tanzu-Build-Service-Builder-resource>'

Sonraki adımlar