Sdílet prostřednictvím


Automatizace nasazení aplikací do Azure Spring Apps

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container 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í kanálu

Pokud chcete nasadit pomocí kanálu, postupujte takto:

  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 předplatné Azure, a pak vyberte instanci aplikace Azure Spring Apps.

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

  6. Nastavte balíček nebo složku tak, aby byly dokončeny, cílit nebo 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í kanálu by se mělo shodovat s následujícím obrázkem.

    Snímek obrazovky Azure DevOps s nastavením nového kanálu

    Projekty můžete také sestavit a nasadit pomocí následující šablony kanálu. 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ží veškerý zákaznický provoz.

Úprava souboru kanálu

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 Strategie nasazení 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žití oddílu Vydané verze

Následující kroky ukazují, jak povolit modré zelené nasazení z části Vydané verze .

  1. Vyberte Kanály a vytvořte nový kanál pro váš artefakt sestavení a publikování Mavenu.

    1. Jako umístění kódu vyberte Git Azure Repos.
    2. Vyberte úložiště, ve kterém se nachází váš kód.
    3. Vyberte šablonu Maven a upravte soubor tak, aby nastavil mavenPomFile pole na complete/pom.xml.
    4. Vyberte Zobrazit asistenta na pravé straně a vyberte šablonu Publikovat artefakty sestavení.
    5. Nastavte cestu k publikování pro dokončení, cíl nebo 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 nový kanál a výběrem prázdné úlohy vytvořte úlohu.

  4. V části Fáze vyberte 1 úlohu řádku , 0 úkolu.

    Snímek obrazovky Azure DevOps, který zobrazuje kartu Kanály se zvýrazněným odkazem na 1 úlohu a 0 úloh

    1. Vyberte, + že chcete do úlohy přidat úkol.
    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. Pokud neexistuje, povolte možnost Vytvořit nové přípravné nasazení, zadejte název v části 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 úlohu, 1 úkol.

  7. Přejděte na úlohu Nasazení Azure Spring Apps ve fázi 1 a pak vyberte tři tečky 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, + že chcete do úlohy přidat další úlohu Azure Spring Apps .

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

  11. Vyberte Uložit a pak 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 do Azure bez samostatného kroku sestavení, použijte následující šablonu kanálu.

- 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í image

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

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

Nasazení a zadání tvůrce (jenom plán Enterprise)

Pokud používáte plán Azure Spring Apps Enterprise, můžete také určit, který tvůrce se má použít k nasazení akcí pomocí této builder možnosti, 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