Automatisera programdistributioner till Azure Spring Apps

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise

Den här artikeln visar hur du använder Azure Spring Apps-uppgiften för Azure Pipelines för att distribuera program.

Med verktyg för kontinuerlig integrering och kontinuerlig leverans kan du snabbt distribuera uppdateringar till befintliga program med minimal ansträngning och risk. Azure DevOps hjälper dig att organisera och kontrollera dessa nyckeljobb.

I följande video beskrivs automatisering från slutpunkt till slutpunkt med valfria verktyg, inklusive Azure Pipelines.


Skapa en Azure Resource Manager-tjänstanslutning

Skapa först en Azure Resource Manager-tjänstanslutning till ditt Azure DevOps-projekt. Anvisningar finns i Anslut till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Apps-tjänstinstans.

Skapa och distribuera appar

Nu kan du skapa och distribuera dina projekt med hjälp av en rad uppgifter. Följande Azure Pipelines-mall definierar variabler, en .NET Core-uppgift för att skapa programmet och en Azure Spring Apps-uppgift för att distribuera programmet.

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)

Konfigurera en Azure Spring Apps-instans och ett Azure DevOps-projekt

Använd först följande steg för att konfigurera en befintlig Azure Spring Apps-instans för användning med Azure DevOps.

  1. Gå till din Azure Spring Apps-instans och skapa sedan en ny app.
  2. Gå till Azure DevOps-portalen och skapa sedan ett nytt projekt under den valda organisationen. Om du inte har en Azure DevOps-organisation kan du skapa en kostnadsfritt.
  3. Välj Lagringsplatser och importera sedan Spring Boot-demokoden till lagringsplatsen.

Skapa en Azure Resource Manager-tjänstanslutning

Skapa sedan en Azure Resource Manager-tjänstanslutning till ditt Azure DevOps-projekt. Anvisningar finns i Anslut till Microsoft Azure. Se till att välja samma prenumeration som du använder för din Azure Spring Apps-tjänstinstans.

Skapa och distribuera appar

Nu kan du skapa och distribuera dina projekt med hjälp av en rad uppgifter. I följande avsnitt visas olika alternativ för att distribuera din app med Hjälp av Azure DevOps.

Distribuera med hjälp av en pipeline

Följ dessa steg för att distribuera med hjälp av en pipeline:

  1. Välj Pipelines och skapa sedan en ny pipeline med en Maven-mall.

  2. Redigera filen azure-pipelines.yml för att ange mavenPomFile fältet till "complete/pom.xml".

  3. Välj Visa assistent till höger och välj sedan mallen Azure Spring Apps .

  4. Välj den tjänstanslutning som du skapade för din Azure-prenumeration och välj sedan din Azure Spring Apps-instans och appinstans.

  5. Inaktivera Använd mellanlagringsdistribution.

  6. Ange Paket eller mapp som slutförd/mål/spring-boot-complete-0.0.1-SNAPSHOT.jar.

  7. Välj Lägg till för att lägga till den här uppgiften i pipelinen.

    Dina pipelineinställningar ska matcha följande bild.

    Skärmbild av Azure DevOps som visar inställningarna för ny pipeline.

    Du kan också skapa och distribuera dina projekt med hjälp av följande pipelinemall. Det här exemplet definierar först en Maven-uppgift för att skapa programmet, följt av en andra uppgift som distribuerar JAR-filen med hjälp av Azure Spring Apps-uppgiften för Azure Pipelines.

    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. Välj Spara och kör och vänta sedan tills jobbet har slutförts.

Blågröna distributioner

Distributionen som visas i föregående avsnitt tar emot programtrafik omedelbart efter distributionen. På så sätt kan du testa programmet i produktionsmiljön innan det tar emot någon kundtrafik.

Redigera pipelinefilen

Om du vill skapa programmet på samma sätt som tidigare och distribuera det till en mellanlagringsdistribution använder du följande mall. I det här exemplet måste mellanlagringsdistributionen redan finnas. En alternativ metod finns i Blågröna distributionsstrategier.

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

Använd avsnittet Versioner

Följande steg visar hur du aktiverar en blågrön distribution från avsnittet Versioner .

  1. Välj Pipelines och skapa en ny pipeline för din Maven-version och publicera artefakt.

    1. Välj Azure Repos Git för din kodplats.
    2. Välj en lagringsplats där koden finns.
    3. Välj Maven-mallen och ändra filen för att ange fältet till .complete/pom.xmlmavenPomFile
    4. Välj Visa assistent till höger och välj mallen Publicera byggartefakter .
    5. Ange Sökväg för att publicera till complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
    6. Välj Spara och kör.
  2. Välj Versioner och sedan Skapa version.

  3. Lägg till en ny pipeline och välj Tomt jobb för att skapa ett jobb.

  4. Under Faser väljer du rad 1-jobb, 0 uppgift

    Skärmbild av Azure DevOps som visar fliken Pipelines med länken 1 jobb, 0 markerade.

    1. Välj för + att lägga till en uppgift i jobbet.
    2. Sök efter Azure Spring Apps-mallen och välj sedan Lägg till för att lägga till uppgiften i jobbet.
    3. Välj Distribuera Azure Spring Apps: för att redigera uppgiften.
    4. Fyll i den här uppgiften med din apps information och inaktivera sedan Använd mellanlagringsdistribution.
    5. Aktivera Skapa en ny mellanlagringsdistribution om det inte finns någon och ange sedan ett namn i Distribution.
    6. Spara den här uppgiften genom att välja Spara .
    7. Välj OK.
  5. Välj Pipeline och sedan Lägg till en artefakt.

    1. Under Källa (bygg-pipeline) väljer du den pipeline som skapades tidigare.
    2. Välj Lägg till och sedan Spara.
  6. Välj 1 jobb, 1 aktivitet under Steg.

  7. Gå till Azure Spring Apps Deploy-uppgiften i steg 1 och välj sedan ellipsen bredvid Paket eller mapp.

  8. Välj spring-boot-complete-0.0.1-SNAPSHOT.jar i dialogrutan och välj sedan OK.

    Skärmbild av Azure DevOps som visar dialogrutan Välj en fil eller mapp.

  9. + Välj för att lägga till ytterligare en Azure Spring Apps-uppgift i jobbet.

  10. Ändra åtgärden till Ange produktionsdistribution.

  11. Välj Spara och sedan Skapa version för att starta distributionen automatiskt.

Om du vill verifiera appens aktuella versionsstatus väljer du Visa version. När den här uppgiften är klar går du till Azure-portalen för att verifiera din appstatus.

Distribuera från källa

Om du vill distribuera direkt till Azure utan ett separat byggsteg använder du följande pipelinemall.

- 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)

Distribuera från anpassad avbildning

Om du vill distribuera direkt från en befintlig containeravbildning använder du följande pipelinemall.

- 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>'

Distribuera och ange en byggare (endast Enterprise-plan)

Om du använder Azure Spring Apps Enterprise-planen kan du också ange vilken byggare som ska användas för att distribuera åtgärder med hjälp av builder alternativet, som du ser i följande exempel. Mer information finns i Använda Tanzu Build Service.

- 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>'

Nästa steg