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.
- Přejděte do instance Azure Spring Apps a pak vytvořte novou aplikaci.
- 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.
- 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:
Vyberte Kanály a pak vytvořte nový kanál s šablonou Mavenu.
Upravte soubor azure-pipelines.yml a nastavte
mavenPomFile
pole na complete/pom.xml.Na pravé straně vyberte Zobrazit asistenta a pak vyberte šablonu Azure Spring Apps.
Vyberte připojení služby, které jste vytvořili pro předplatné Azure, a pak vyberte instanci aplikace Azure Spring Apps.
Zakázat použití přípravného nasazení
Nastavte balíček nebo složku tak, aby byly dokončeny, cílit nebo spring-boot-complete-0.0.1-SNAPSHOT.jar.
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.
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
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 .
Vyberte Kanály a vytvořte nový kanál pro váš artefakt sestavení a publikování Mavenu.
- Jako umístění kódu vyberte Git Azure Repos.
- Vyberte úložiště, ve kterém se nachází váš kód.
- Vyberte šablonu Maven a upravte soubor tak, aby nastavil
mavenPomFile
pole nacomplete/pom.xml
. - Vyberte Zobrazit asistenta na pravé straně a vyberte šablonu Publikovat artefakty sestavení.
- Nastavte cestu k publikování pro dokončení, cíl nebo spring-boot-complete-0.0.1-SNAPSHOT.jar.
- Zvolte Uložit a Spustit.
Vyberte Vydané verze a pak Vytvořte verzi.
Přidejte nový kanál a výběrem prázdné úlohy vytvořte úlohu.
V části Fáze vyberte 1 úlohu řádku , 0 úkolu.
- Vyberte, + že chcete do úlohy přidat úkol.
- Vyhledejte šablonu Azure Spring Apps a pak vyberte Přidat a přidejte úkol do úlohy.
- Vyberte Azure Spring Apps Deploy: k úpravě úlohy.
- Vyplňte tuto úlohu informacemi o aplikaci a pak zakažte použití přípravného nasazení.
- Pokud neexistuje, povolte možnost Vytvořit nové přípravné nasazení, zadejte název v části Nasazení.
- Chcete-li uložit tento úkol, vyberte Uložit .
- Vyberte OK.
Vyberte Kanál a pak vyberte Přidat artefakt.
- V části Zdroj (kanál buildu) vyberte kanál vytvořený dříve.
- Vyberte Přidat a pak Uložit.
V části Fáze vyberte 1 úlohu, 1 úkol.
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.
V dialogovém okně vyberte spring-boot-complete-0.0.1-SNAPSHOT.jar a pak vyberte OK.
Vyberte, + že chcete do úlohy přidat další úlohu Azure Spring Apps .
Změňte akci na Nastavení produkčního nasazení.
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>'