Ćwiczenie — wdrażanie aplikacji internetowej w usłudze aplikacja systemu Azure
W tym module utworzysz potok wieloestowy, aby skompilować i wdrożyć aplikację w usłudze aplikacja systemu Azure Service. Dowiedz się, jak odbywa się:
- Utwórz wystąpienie usługi App Service do hostowania aplikacji internetowej.
- Utwórz potok wieloestowy.
- Wdrażanie w usłudze aplikacja systemu Azure.
Tworzenie wystąpienia usługi App Service
Zaloguj się w witrynie Azure Portal.
Wybierz pozycję App Services w okienku po lewej stronie.
Wybierz pozycję Utwórz>aplikację internetową, aby utworzyć nową aplikację internetową.
Na karcie Podstawy wprowadź następujące wartości.
Ustawienie Wartość Szczegóły projektu Subskrypcja Twoja subskrypcja Grupa zasobów Wybierz pozycję Utwórz nowy, a następnie wprowadź tailspin-space-game-rg, a następnie wybierz przycisk OK. Szczegóły wystąpienia Nazwisko Podaj unikatową nazwę, taką jak tailspin-space-game-web-1234. Ta nazwa musi być unikatowa w obrębie całej platformy Azure. Staje się częścią nazwy domeny. W praktyce wybierz nazwę opisjącą usługę. Zanotuj nazwę później. Publikowanie Kod Stos środowiska uruchomieniowego .NET 6 (LTS) System operacyjny Linux Region (Region) Wybierz region, najlepiej blisko siebie. Plany cenowe Plan systemu Linux Zaakceptuj domyślną wartość. Plan cenowy Wybierz warstwę cenową Podstawowa B1 z menu rozwijanego. Wybierz pozycję Przejrzyj i utwórz, przejrzyj formularz, a następnie wybierz pozycję Utwórz. Ukończenie wdrożenia potrwa kilka minut.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu. W obszarze App Service Essentials są wyświetlane szczegóły związane z wdrożeniem.
Wybierz adres URL, aby zweryfikować stan usługi App Service.
Ważne
Na stronie Czyszczenie środowiska usługi Azure DevOps w tym module wyjaśniono, jak usunąć wystąpienie usługi App Service po zakończeniu pracy z nim. Czyszczenie pomaga zagwarantować, że po ukończeniu tego modułu nie są naliczane opłaty za zasoby platformy Azure. Upewnij się, że wykonasz kroki oczyszczania, nawet jeśli nie ukończysz tego modułu.
Tworzenie połączenia z usługą
Ważne
Upewnij się, że zalogowaliśmy się do platformy Azure i usługi Azure DevOps na tym samym koncie Microsoft.
W usłudze Azure DevOps przejdź do projektu Space Game — Web — Release .
W lewym dolnym rogu strony wybierz pozycję Ustawienia projektu.
W obszarze Potoki wybierz pozycję Połączenia z usługą.
Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager , a następnie wybierz pozycję Dalej.
Wybierz pozycję Jednostka usługi (automatyczna), a następnie wybierz pozycję Dalej.
Wypełnij wymagane pola w następujący sposób: jeśli zostanie wyświetlony monit, zaloguj się do konta Microsoft.
Pole Wartość Poziom zakresu Subskrypcja Subskrypcja Subskrypcja platformy Azure Grupa zasobów tailspin-space-game-rg Nazwa połączenia z usługą Resource Manager — Tailspin — gra kosmiczna Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków .
Wybierz pozycję Zapisz.
Dodawanie etapu kompilacji do potoku
Potok wieloestowy umożliwia zdefiniowanie odrębnych faz przechodzących przez zmianę w miarę podwyższenia poziomu potoku. Każdy etap definiuje agenta, zmienne i kroki wymagane do przeprowadzenia tej fazy potoku. W tej sekcji zdefiniujesz jeden etap do wykonania kompilacji. Zdefiniuj drugi etap wdrażania aplikacji internetowej w usłudze App Service.
Aby przekonwertować istniejącą konfigurację kompilacji na potok wieloestowy, należy dodać sekcję stages
do konfiguracji, a następnie dodać co najmniej jedną stage
sekcję dla każdej fazy potoku. Etapy dzielą się na zadania, które są serią kroków, które są uruchamiane sekwencyjnie jako jednostka.
W projekcie w programie Visual Studio Code otwórz azure-pipelines.yml i zastąp jego zawartość następującym kodem:
trigger: - '*' variables: buildConfiguration: 'Release' stages: - stage: 'Build' displayName: 'Build the web application' jobs: - job: 'Build' displayName: 'Build job' pool: vmImage: 'ubuntu-20.04' demands: - npm variables: wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' dotnetSdkVersion: '6.x' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - publish: '$(Build.ArtifactStagingDirectory)' artifact: drop
W zintegrowanym terminalu uruchom następujące polecenia, aby przygotować, zatwierdzić, a następnie wypchnąć zmiany do gałęzi zdalnej.
git add azure-pipelines.yml git commit -m "Add a build stage" git push origin release-pipeline
W usłudze Azure Pipelines przejdź do potoku, aby wyświetlić dzienniki.
Po zakończeniu kompilacji wybierz przycisk Wstecz, aby powrócić do strony podsumowania i sprawdzić stan potoku i opublikowany artefakt.
Tworzenie środowiska deweloperskiego
Środowisko to abstrakcyjna reprezentacja środowiska wdrażania. Środowiska mogą służyć do definiowania określonych kryteriów wydania, takich jak potok, który jest autoryzowany do wdrażania w środowisku. Środowiska mogą również służyć do konfigurowania ręcznych zatwierdzeń dla określonego użytkownika/grupy w celu zatwierdzenia przed wznowieniu wdrożenia.
W obszarze Azure Pipelines wybierz pozycję Środowiska.
Wybierz pozycję Utwórz środowisko.
W obszarze Nazwa wprowadź wartość dev.
Pozostaw wartości domyślne pozostałych pól.
Wybierz pozycję Utwórz.
Przechowywanie nazwy aplikacji internetowej w zmiennej potoku
Tworzony etap wdrażania używa nazwy w celu zidentyfikowania wystąpienia usługi App Service do wdrożenia, np . tailspin-space-game-web-1234.
Mimo że można trwale kodować tę nazwę w konfiguracji potoku, zdefiniowanie jej jako zmiennej sprawia, że konfiguracja będzie bardziej wielokrotnego użytku.
W usłudze Azure DevOps wybierz pozycję Potoki , a następnie wybierz pozycję Biblioteka.
Wybierz pozycję + Grupa zmiennych , aby utworzyć nową grupę zmiennych.
Wprowadź wartość Release (Wydanie ) jako nazwę grupy zmiennych.
Wybierz pozycję Dodaj w obszarze Zmienne , aby dodać nową zmienną.
Wprowadź wartość WebAppName jako nazwę zmiennej i nazwę wystąpienia usługi App Service: na przykład tailspin-space-game-web-1234.
Wybierz pozycję Zapisz.
Dodawanie etapu wdrażania do potoku
Rozszerzamy nasz potok przez dodanie etapu wdrożenia w celu wdrożenia gry Space Game w usłudze App Service przy użyciu download
zadań i AzureWebApp@1
w celu pobrania artefaktu kompilacji, a następnie wdrożenia go.
Z programu Visual Studio Code zastąp zawartość azure-pipelines.yml następującym kodem yaml:
trigger: - '*' variables: buildConfiguration: 'Release' stages: - stage: 'Build' displayName: 'Build the web application' jobs: - job: 'Build' displayName: 'Build job' pool: vmImage: 'ubuntu-20.04' demands: - npm variables: wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' dotnetSdkVersion: '6.x' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - publish: '$(Build.ArtifactStagingDirectory)' artifact: drop - stage: 'Deploy' displayName: 'Deploy the web application' dependsOn: Build jobs: - deployment: Deploy pool: vmImage: 'ubuntu-20.04' environment: dev variables: - group: Release strategy: runOnce: deploy: steps: - download: current artifact: drop - task: AzureWebApp@1 displayName: 'Azure App Service Deploy: website' inputs: azureSubscription: 'Resource Manager - Tailspin - Space Game' appName: '$(WebAppName)' package: '$(Pipeline.Workspace)/drop/$(buildConfiguration)/*.zip'
Zwróć uwagę na wyróżnioną sekcję i sposób używania
download
zadań iAzureWebApp@1
. Potok pobiera element$(WebAppName)
z utworzonej wcześniej grupy zmiennych.Zwróć również uwagę, jak używamy
environment
metody wdrażania w środowisku deweloperskim.W zintegrowanym terminalu dodaj azure-pipelines.yml do indeksu. Następnie zatwierdź zmianę i wypchnij ją do usługi GitHub.
git add azure-pipelines.yml git commit -m "Add a deployment stage" git push origin release-pipeline
W usłudze Azure Pipelines przejdź do potoku, aby wyświetlić dzienniki.
Po zakończeniu kompilacji wybierz przycisk Wstecz, aby powrócić do strony podsumowania i sprawdzić stan etapów. Oba etapy zakończyły się pomyślnie w naszym przypadku.
Wyświetlanie wdrożonej witryny internetowej w usłudze App Service
Jeśli nadal masz otwartą kartę usługi App Service, odśwież stronę. W przeciwnym razie przejdź do usługi aplikacja systemu Azure w witrynie Azure Portal i wybierz adres URL wystąpienia: na przykład
https://tailspin-space-game-web-1234.azurewebsites.net
Witryna internetowa Space Game została pomyślnie wdrożona w usłudze aplikacja systemu Azure Service.
Gratulacje! Witryna internetowa Space Game została pomyślnie wdrożona w usłudze aplikacja systemu Azure Przy użyciu usługi Azure Pipelines.