Sdílet prostřednictvím


Automatizace nasazení aplikací do Azure Spring Apps

Poznámka:

Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise

V tomto článku se dozvíte, jak pomocí úlohy Azure Spring Apps pro Azure Pipelines nasazovat aplikace.

Nástroje pro kontinuální integraci a průběžné doručování umožňují rychle nasazovat aktualizace do stávajících aplikací s minimálním úsilím a rizikem. Azure DevOps pomáhá organizovat a řídit tyto klíčové úlohy.

Následující video popisuje kompletní automatizaci pomocí nástrojů podle vašeho výběru, včetně Azure Pipelines.


Vytvoření připojení služby Azure Resource Manager

Nejprve vytvořte připojení služby Azure Resource Manager k projektu Azure DevOps. Pokyny najdete v tématu Připojení k Microsoft Azure. Nezapomeňte vybrat stejné předplatné, které používáte pro instanci služby Azure Spring Apps.

Sestavování a nasazování aplikací

Teď můžete vytvářet a nasazovat projekty pomocí řady úkolů. Následující šablona Azure Pipelines definuje proměnné, úlohu .NET Core pro sestavení aplikace a úlohu Azure Spring Apps pro nasazení aplikace.

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)

Nastavení instance Azure Spring Apps a projektu Azure DevOps

Nejprve pomocí následujícího postupu nastavte existující instanci Azure Spring Apps pro použití s Azure DevOps.

  1. Přejděte do instance Azure Spring Apps a pak vytvořte novou aplikaci.
  2. Přejděte na portál Azure DevOps a pak ve zvolené organizaci vytvořte nový projekt. Pokud nemáte organizaci Azure DevOps, můžete si ji zdarma vytvořit.
  3. Vyberte Úložiště a pak naimportujte ukázkový kód Spring Bootu do úložiště.

Vytvoření připojení služby Azure Resource Manager

Dále vytvořte připojení služby Azure Resource Manager k projektu Azure DevOps. Pokyny najdete v tématu Připojení k Microsoft Azure. Nezapomeňte vybrat stejné předplatné, které používáte pro instanci služby Azure Spring Apps.

Sestavování a nasazování aplikací

Teď můžete vytvářet a nasazovat projekty pomocí řady úkolů. Následující části ukazují různé možnosti nasazení aplikace pomocí Azure DevOps.

Nasazení pomocí pipeline

Pokud chcete nasadit pomocí pipeline, postupujte následujícím způsobem:

  1. Vyberte Kanály a pak vytvořte nový kanál s šablonou Mavenu.

  2. Upravte soubor azure-pipelines.yml a nastavte mavenPomFile pole na complete/pom.xml.

  3. Na pravé straně vyberte Zobrazit asistenta a pak vyberte šablonu Azure Spring Apps.

  4. Vyberte připojení služby, které jste vytvořili pro vaše předplatné Azure, poté vyberte instanci aplikací Azure Spring Apps a instanci aplikace.

  5. Zakázat použití přípravného nasazení

  6. Nastavte balíček nebo složku na complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.

  7. Výběrem možnosti Přidat přidáte tuto úlohu do kanálu.

    Nastavení potrubí by se mělo shodovat s následujícím obrázkem.

    Snímek obrazovky Azure DevOps, který zobrazuje nastavení nového pipeline

    Vaše projekty můžete také sestavit a nasadit pomocí následující šablony pracovního postupu. Tento příklad nejprve definuje úlohu Mavenu pro sestavení aplikace a druhou úlohu, která nasadí soubor JAR pomocí úlohy Azure Spring Apps pro 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. Vyberte Uložit a spusťte a počkejte na dokončení úlohy.

Nasazení s modrou zelenou barvou

Nasazení zobrazené v předchozí části přijímá provoz aplikací okamžitě po nasazení. To vám umožní otestovat aplikaci v produkčním prostředí předtím, než obdrží jakýkoliv zákaznický provoz.

Úprava souboru potrubí

Pokud chcete vytvořit aplikaci stejným způsobem, jak je znázorněno dříve, a nasadit ji do přípravného nasazení, použijte následující šablonu. V tomto příkladu už musí existovat přípravné nasazení. Alternativní přístup najdete v tématu strategií nasazení typu blue-green.

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

Použijte sekci Vydané verze

Následující kroky ukazují, jak povolit blue-green deployment v části Vydané verze.

  1. Vyberte Pipeline a vytvořte nové pipeline pro vaše sestavení a publikování Mavenu.

    1. Jako umístění kódu vyberte Azure Repos Git.
    2. Vyberte úložiště, ve kterém se nachází váš kód.
    3. Vyberte šablonu Maven a upravte soubor tak, abyste nastavili pole na mavenPomFile.
    4. Vyberte Zobrazit asistenta na pravé straně a vyberte šablonu Publikovat artefakty sestavení.
    5. Nastavte cestu k publikování na complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
    6. Zvolte Uložit a Spustit.
  2. Vyberte Vydané verze a pak Vytvořte verzi.

  3. Přidejte novou pipeline a vyberte prázdnou úlohu pro vytvoření úlohy.

  4. V části Fáze vyberte řádek 1 úloha, 0 úkol.

    Snímek obrazovky Azure DevOps, který zobrazuje kartu Pipelines se zvýrazněným odkazem na 1 práci a 0 úkolů

    1. Vyberte +, abyste přidali úkol k úloze.
    2. Vyhledejte šablonu Azure Spring Apps a pak vyberte Přidat a přidejte úkol do úlohy.
    3. Vyberte Azure Spring Apps Deploy: k úpravě úlohy.
    4. Vyplňte tuto úlohu informacemi o aplikaci a pak zakažte použití přípravného nasazení.
    5. Povolte Vytvořit nové přípravné nasazení, pokud neexistuje, a poté zadejte název v Nasazení.
    6. Chcete-li uložit tento úkol, vyberte Uložit .
    7. Vyberte OK.
  5. Vyberte Kanál a pak vyberte Přidat artefakt.

    1. V části Zdroj (kanál buildu) vyberte kanál vytvořený dříve.
    2. Vyberte Přidat a pak Uložit.
  6. V části Fáze vyberte 1 úkol, 1 úloha.

  7. Přejděte na úlohu Azure Spring Apps Deploy ve fáze 1, a pak vyberte ikonu se třemi tečkami vedle položky Balíček nebo složka.

  8. V dialogovém okně vyberte spring-boot-complete-0.0.1-SNAPSHOT.jar a pak vyberte OK.

    Snímek obrazovky Azure DevOps s dialogovým oknem Vybrat soubor nebo složku

  9. Vyberte +, abyste do úlohy přidali další Azure Spring Apps.

  10. Změňte akci na Nastavení produkčního nasazení.

  11. Vyberte Uložit a poté Vytvořte verzi, aby se nasazení spustilo automaticky.

Pokud chcete ověřit aktuální stav vydané verze aplikace, vyberte Zobrazit verzi. Po dokončení této úlohy přejděte na web Azure Portal a ověřte stav aplikace.

Nasazení ze zdroje

Pokud chcete nasadit přímo na Azure bez samostatného kroku sestavení, použijte následující šablonu potrubí.

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

Nasazení z vlastního obrazu

Pokud chcete nasadit přímo z již existující image kontejneru, použijte následující šablonu pipeline.

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

Nasadit a specifikovat stavitele (pouze tarif Enterprise)

Pokud používáte plán Azure Spring Apps Enterprise, můžete také určit, který kompilační program se má použít pro nasazování pomocí volby builder, jak je znázorněno v následujícím příkladu. Další informace najdete v tématu Použití služby 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>'

Další kroky