Automatyzowanie wdrożeń aplikacji w usłudze Azure Spring Apps
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise
W tym artykule pokazano, jak wdrożyć aplikacje przy użyciu zadania usługi Azure Spring Apps dla usługi Azure Pipelines .
Narzędzia ciągłej integracji i ciągłego dostarczania umożliwiają szybkie wdrażanie aktualizacji istniejących aplikacji przy minimalnym nakładzie pracy i ryzyku. Usługa Azure DevOps ułatwia organizowanie i kontrolowanie tych kluczowych zadań.
W poniższym filmie wideo opisano kompleksową automatyzację przy użyciu wybranego narzędzia, w tym usługi Azure Pipelines.
Tworzenie połączenia usługi Azure Resource Manager
Najpierw utwórz połączenie usługi Azure Resource Manager z projektem usługi Azure DevOps. Aby uzyskać instrukcje, zobacz Nawiązywanie połączenia z platformą Microsoft Azure. Pamiętaj, aby wybrać tę samą subskrypcję, której używasz dla wystąpienia usługi Azure Spring Apps.
Kompilowanie i wdrażanie aplikacji
Teraz możesz kompilować i wdrażać projekty przy użyciu serii zadań. Poniższy szablon usługi Azure Pipelines definiuje zmienne, zadanie platformy .NET Core do kompilowania aplikacji oraz zadanie usługi Azure Spring Apps w celu wdrożenia aplikacji.
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)
Konfigurowanie wystąpienia usługi Azure Spring Apps i projektu usługi Azure DevOps
Najpierw wykonaj następujące kroki, aby skonfigurować istniejące wystąpienie usługi Azure Spring Apps do użycia z usługą Azure DevOps.
- Przejdź do wystąpienia usługi Azure Spring Apps, a następnie utwórz nową aplikację.
- Przejdź do portalu usługi Azure DevOps, a następnie utwórz nowy projekt w wybranej organizacji. Jeśli nie masz organizacji usługi Azure DevOps, możesz go utworzyć bezpłatnie.
- Wybierz pozycję Repozytoria, a następnie zaimportuj kod demonstracyjny spring boot do repozytorium.
Tworzenie połączenia usługi Azure Resource Manager
Następnie utwórz połączenie usługi Azure Resource Manager z projektem usługi Azure DevOps. Aby uzyskać instrukcje, zobacz Nawiązywanie połączenia z platformą Microsoft Azure. Pamiętaj, aby wybrać tę samą subskrypcję, której używasz dla wystąpienia usługi Azure Spring Apps.
Kompilowanie i wdrażanie aplikacji
Teraz możesz kompilować i wdrażać projekty przy użyciu serii zadań. W poniższych sekcjach przedstawiono różne opcje wdrażania aplikacji przy użyciu usługi Azure DevOps.
Wdrażanie przy użyciu potoku
Aby wdrożyć przy użyciu potoku, wykonaj następujące kroki:
Wybierz pozycję Potoki, a następnie utwórz nowy potok przy użyciu szablonu narzędzia Maven.
Edytuj plik azure-pipelines.yml, aby ustawić
mavenPomFile
pole na wartość "complete/pom.xml".Wybierz pozycję Pokaż asystenta po prawej stronie, a następnie wybierz szablon Azure Spring Apps .
Wybierz połączenie usługi utworzone dla subskrypcji platformy Azure, a następnie wybierz wystąpienie usługi Azure Spring Apps i wystąpienie aplikacji.
Wyłącz opcję Użyj wdrożenia przejściowego.
Ustaw wartość Package or folder na complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
Wybierz pozycję Dodaj , aby dodać to zadanie do potoku.
Ustawienia potoku powinny być zgodne z poniższą ilustracją.
Projekty można również kompilować i wdrażać przy użyciu następującego szablonu potoku. W tym przykładzie najpierw zdefiniowano zadanie maven w celu skompilowania aplikacji, a następnie drugie zadanie, które wdraża plik JAR przy użyciu zadania Usługi Azure Spring Apps dla usługi 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
Wybierz pozycję Zapisz i uruchom, a następnie poczekaj na zakończenie zadania.
Wdrożenia niebiesko-zielone
Wdrożenie pokazane w poprzedniej sekcji natychmiast odbiera ruch aplikacji po wdrożeniu. Dzięki temu można przetestować aplikację w środowisku produkcyjnym przed odebraniem dowolnego ruchu klienta.
Edytowanie pliku potoku
Aby skompilować aplikację w taki sam sposób, jak pokazano wcześniej i wdrożyć ją we wdrożeniu przejściowym, użyj następującego szablonu. W tym przykładzie wdrożenie przejściowe musi już istnieć. Aby zapoznać się z alternatywnym podejściem, zobacz Strategie wdrażania niebieski-zielony.
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
Korzystanie z sekcji Wydania
W poniższych krokach pokazano, jak włączyć wdrożenie niebiesko-zielone w sekcji Wydania .
Wybierz pozycję Potoki i utwórz nowy potok dla kompilacji i publikowania artefaktu narzędzia Maven.
- Wybierz pozycję Azure Repos Git dla swojej lokalizacji kodu.
- Wybierz repozytorium, w którym znajduje się kod.
- Wybierz szablon maven i zmodyfikuj plik, aby ustawić
mavenPomFile
pole nacomplete/pom.xml
. - Wybierz pozycję Pokaż asystenta po prawej stronie i wybierz szablon Publikuj artefakty kompilacji .
- Ustaw ścieżkę do publikowania , aby ukończyć /docelowy/spring-boot-complete-0.0.1-SNAPSHOT.jar.
- Wybierz pozycję Zapisz i uruchom.
Wybierz pozycję Wydania, a następnie pozycję Utwórz wydanie.
Dodaj nowy potok i wybierz pozycję Puste zadanie , aby utworzyć zadanie.
W obszarze Etapy wybierz wiersz 1 zadanie, 0
- Wybierz element , + aby dodać zadanie do zadania.
- Wyszukaj szablon Azure Spring Apps, a następnie wybierz pozycję Dodaj, aby dodać zadanie do zadania.
- Wybierz pozycję Azure Spring Apps Deploy (Wdrażanie usługi Azure Spring Apps): aby edytować zadanie.
- Wypełnij to zadanie informacjami aplikacji, a następnie wyłącz opcję Użyj wdrożenia przejściowego.
- Włącz opcję Utwórz nowe wdrożenie przejściowe, jeśli nie istnieje, a następnie wprowadź nazwę we wdrożeniu.
- Wybierz pozycję Zapisz , aby zapisać to zadanie.
- Wybierz przycisk OK.
Wybierz pozycję Potok, a następnie wybierz pozycję Dodaj artefakt.
- W obszarze Źródło (potok kompilacji) wybierz utworzony wcześniej potok.
- Wybierz pozycję Dodaj, a następnie pozycję Zapisz.
Wybierz 1 zadanie, 1 zadanie w obszarze Etapy.
Przejdź do zadania Azure Spring Apps Deploy w etapie 1, a następnie wybierz wielokropek obok pozycji Pakiet lub folder.
Wybierz spring-boot-complete-0.0.1-SNAPSHOT.jar w oknie dialogowym, a następnie wybierz przycisk OK.
Wybierz pozycję , + aby dodać kolejne zadanie usługi Azure Spring Apps do zadania.
Zmień akcję na Ustaw wdrożenie produkcyjne.
Wybierz pozycję Zapisz, a następnie utwórz wydanie , aby automatycznie uruchomić wdrożenie.
Aby sprawdzić bieżący stan wydania aplikacji, wybierz pozycję Wyświetl wydanie. Po zakończeniu tego zadania odwiedź witrynę Azure Portal, aby zweryfikować stan aplikacji.
Wdrażanie ze źródła
Aby wdrożyć bezpośrednio na platformie Azure bez oddzielnego kroku kompilacji, użyj następującego szablonu potoku.
- 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)
Wdrażanie z obrazu niestandardowego
Aby wdrożyć bezpośrednio z istniejącego obrazu kontenera, użyj następującego szablonu potoku.
- 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>'
Wdrażanie i określanie konstruktora (tylko plan przedsiębiorstwa)
Jeśli używasz planu Usługi Azure Spring Apps Enterprise, możesz również określić, który konstruktor będzie używany do wdrażania akcji przy użyciu builder
opcji , jak pokazano w poniższym przykładzie. Aby uzyskać więcej informacji, zobacz Use Tanzu Build Service (Korzystanie z usługi 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>'