Ćwiczenie — dodawanie zadania wdrożenia Bicep do potoku
Utworzono podstawowy potok i skonfigurowano środowiska platformy Azure i usługi Azure Pipelines w celu nawiązania połączenia. Teraz możesz wdrożyć plik Bicep witryny internetowej na platformie Azure z potoku.
W tym ćwiczeniu wykonasz następujące czynności:
- Dodaj plik Bicep do repozytorium.
- Dodaj krok potoku, aby wdrożyć plik Bicep.
- Uruchom potok ponownie i sprawdź, czy pomyślnie wdrożono witrynę internetową.
Dodawanie pliku Bicep witryny internetowej do repozytorium Git
Masz już przygotowany plik Bicep witryny internetowej. Możesz użyć pliku Bicep, aby wdrożyć różne konfiguracje zasobów witryny internetowej, w zależności od środowiska i konfiguracji. W tym miejscu dodasz plik Bicep do repozytorium.
Otwórz Eksploratora programu Visual Studio Code.
W folderze deploy utwórz nowy plik o nazwie main.bicep. Upewnij się, że plik został utworzony w folderze deploy , a nie w katalogu głównym repozytorium:
Skopiuj następujący kod do pliku main.bicep :
@description('The Azure region into which the resources should be deployed.') param location string = resourceGroup().location @description('The type of environment. This must be nonprod or prod.') @allowed([ 'nonprod' 'prod' ]) param environmentType string @description('Indicates whether to deploy the storage account for toy manuals.') param deployToyManualsStorageAccount bool @description('A unique suffix to add to resource names that need to be globally unique.') @maxLength(13) param resourceNameSuffix string = uniqueString(resourceGroup().id) var appServiceAppName = 'toy-website-${resourceNameSuffix}' var appServicePlanName = 'toy-website-plan' var toyManualsStorageAccountName = 'toyweb${resourceNameSuffix}' // Define the SKUs for each component based on the environment type. var environmentConfigurationMap = { nonprod: { appServicePlan: { sku: { name: 'F1' capacity: 1 } } toyManualsStorageAccount: { sku: { name: 'Standard_LRS' } } } prod: { appServicePlan: { sku: { name: 'S1' capacity: 2 } } toyManualsStorageAccount: { sku: { name: 'Standard_ZRS' } } } } var toyManualsStorageAccountConnectionString = deployToyManualsStorageAccount ? 'DefaultEndpointsProtocol=https;AccountName=${toyManualsStorageAccount.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${toyManualsStorageAccount.listKeys().keys[0].value}' : '' resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku } resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { appSettings: [ { name: 'ToyManualsStorageAccountConnectionString' value: toyManualsStorageAccountConnectionString } ] } } } resource toyManualsStorageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = if (deployToyManualsStorageAccount) { name: toyManualsStorageAccountName location: location kind: 'StorageV2' sku: environmentConfigurationMap[environmentType].toyManualsStorageAccount.sku }
Zapisz zmiany w pliku.
W terminalu programu Visual Studio Code uruchom ten kod, aby przygotować zmiany, zatwierdzić zmiany i wypchnąć zmiany do repozytorium:
git add deploy/main.bicep git commit -m 'Add Bicep file' git push
Zastępowanie kroków potoku
Następnie zaktualizuj definicję potoku, aby wdrożyć plik Bicep na platformie Azure przy użyciu połączenia z usługą.
W programie Visual Studio Code otwórz plik deploy/azure-pipelines.yml .
Przed wierszem
jobs:
dodajvariables:
, aby zdefiniować zmienną o nazwiedeploymentDefaultLocation
:trigger: none pool: vmImage: ubuntu-latest variables: - name: deploymentDefaultLocation value: westus3 jobs:
Aby usunąć
script
krok z definicji potoku, usuń dwa dolne wiersze pliku.Napiwek
Gdy pracujesz w programie Visual Studio Code i zainstalowano rozszerzenie usługi Azure Pipelines, spróbuj użyć kombinacji Ctrl+Spacja . Wyświetla menu kontekstowe z sugerowanymi elementami, które mają zostać dodane w bieżącej pozycji kursora.
W dolnej części pliku dodaj zadanie, które używa
AzureResourceManagerTemplateDeployment
zadania do wdrożenia pliku Bicep:jobs: - job: steps: - task: AzureResourceManagerTemplateDeployment@3 inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType) -deployToyManualsStorageAccount $(DeployToyManualsStorageAccount)
Uwaga
Dobrym pomysłem jest samodzielne wpisanie tego kodu zamiast kopiowania i wklejania go z tego modułu. Zwróć uwagę na wcięcie pliku. Jeśli wcięcie nie jest poprawne, plik YAML nie będzie prawidłowy. Program Visual Studio Code wskazuje błędy, wyświetlając zwijanie wierszy.
W tym kroku użyto zmiennej systemowej ,
$(Build.BuildNumber)
aby nazwać wdrożenie. Zmienna może ułatwić sprawdzenie, który potok uruchamia wdrożenie odpowiada.Właściwość zadania jest wymagana
location
AzureResourceManagerTemplateDeployment
przez zadanie. Określa region platformy Azure, w którym ma zostać utworzona grupa zasobów. W tym ćwiczeniu utworzono już grupę zasobów, więc określona tutaj lokalizacja nie ma znaczenia. Ale musisz mimo to podać wartość. W tym miejscu należy ustawić ją na wartośćdeploymentDefaultLocation
zmiennej ustawionej w poprzednim kroku.Zapisz zmiany w pliku. Plik powinien wyglądać tak, jak w tym przykładzie:
trigger: none pool: vmImage: ubuntu-latest variables: - name: deploymentDefaultLocation value: westus3 jobs: - job: steps: - task: AzureResourceManagerTemplateDeployment@3 inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType) -deployToyManualsStorageAccount $(DeployToyManualsStorageAccount)
W terminalu programu Visual Studio Code przygotuj zmiany, zatwierdź je w repozytorium i wypchnij je do usługi Azure Repos:
git add deploy/azure-pipelines.yml git commit -m 'Add deployment task to pipeline' git push
Dodawanie zmiennych potoku
W przeglądarce wybierz pozycję Potoki.
Wybierz swój potok.
Zaznacz Edytuj.
Wybierz pozycję Zmienne.
Wybierz pozycję Nowa zmienna.
W polu Nazwa wprowadź wartość ServiceConnectionName. W polu Wartość wprowadź wartość ToyWebsite.
Pozostaw pola wyboru wyczyszczone, a następnie wybierz przycisk OK.
Aby utworzyć więcej zmiennych, wybierz pozycję +.
Utwórz następujące zmienne w taki sam sposób, jak utworzono zmienną ServiceConnectionName :
Nazwa zmiennej Wartość ResourceGroupName Witryna toyWebsite Typ środowiska nieprod Wykonaj ponownie kroki, aby utworzyć zmienną o nazwie DeployToyManualsStorageAccount z wartością true. Dla tej zmiennej zaznacz pole wyboru Zezwalaj użytkownikom na zastąpienie tej wartości podczas uruchamiania tego potoku .
Po utworzeniu wszystkich czterech zmiennych wybierz pozycję Zapisz.
Uruchamianie potoku
Teraz możesz przystąpić do uruchamiania potoku.
Szablon zawiera konto magazynu używane przez zespół witryny internetowej do przechowywania instrukcji obsługi zabawek. Ponieważ nadal testujesz środowisko, nie musisz wdrażać konta magazynu za każdym razem, gdy wdrażasz witrynę internetową. W związku z tym utworzono parametr Bicep w celu kontrolowania, czy konto magazynu jest wdrożone. W tym miejscu uruchomisz potok i zastąpisz wdrożenie, aby nie wdrożyć konta magazynu tym razem.
Wybierz Uruchom.
Zostanie wyświetlone okienko Uruchom potok . W tym okienku można skonfigurować ustawienia dla tego konkretnego uruchomienia potoku.
Wybierz pozycję Zmienne.
Wybierz zmienną DeployToyManualsStorageAccount i zmień jej wartość na false. Następnie wybierz pozycję Aktualizuj.
Wybierz strzałkę wstecz.
Aby rozpocząć nowy przebieg potoku, wybierz pozycję Uruchom. Uruchomienie potoku może potrwać kilka minut. Po uruchomieniu potoku wdrożenie może potrwać kilka minut.
Aby otworzyć zadanie, w sekcji Zadania wybierz pozycję Zadanie. Zadanie można monitorować podczas jego uruchamiania lub czekać, aż zadanie zakończy się, aby przejrzeć jego historię.
Poczekaj na zakończenie zadania.
Wybierz Praca.
Wybierz 1 użytą zmienną czasu kolejki.
Zostanie wyświetlona wartość przesłoniętą dla tego przebiegu potoku. Wartość
DeployToyManualsStorageAccount
zmiennej jest fałsz , ponieważ przerodzisz oryginalną wartość.Sprawdź pozostałe dane wyjściowe potoku.
Potok przedstawia pomyślne wdrożenie.
Weryfikowanie wdrożenia
Przejdź do portalu Azure Portal.
W menu po lewej stronie wybierz pozycję Grupy zasobów.
Wybierz pozycję ToyWebsite.
W obszarze Przegląd wyświetl stan wdrożenia. Widać, że jedno wdrożenie zakończyło się pomyślnie.
Wybierz pozycję 1 udane, aby wyświetlić szczegóły wdrożenia.
Nazwa wdrożenia jest taka sama jak nazwa przebiegu potoku.
Aby zobaczyć, jakie zasoby zostały wdrożone, wybierz wdrożenie. Aby rozwinąć wdrożenie, aby wyświetlić więcej szczegółów, wybierz pozycję Szczegóły wdrożenia. W takim przypadku istnieje plan usługi aplikacja systemu Azure i aplikacja.