Ćwiczenie — dodawanie parametrów i dekoratorów

Ukończone

Uwaga

Po pierwszym aktywowaniu piaskownicy i zaakceptowaniu warunków twoje konto Microsoft jest skojarzone z nowym katalogiem platformy Azure o nazwie Microsoft Learn Sandbox. Dodano cię również do specjalnej subskrypcji o nazwie Subskrypcja Concierge.

W ramach migracji aplikacji HR tworzysz szablon Bicep w celu wdrożenia zasobów platformy Azure. W tym ćwiczeniu utworzysz plan usługi aplikacja systemu Azure Service i aplikację usługi App Service. Zastosujesz dekoratory do każdego parametru, aby upewnić się, że będą zawsze zawierać oczekiwane wartości.

Podczas tego procesu wykonasz następujące zadania:

  • Utwórz plik Bicep zawierający parametry i zmienne.
  • Dodaj dekoratory do parametrów.
  • Przetestuj wdrożenie, aby upewnić się, że szablon jest prawidłowy.

W tym ćwiczeniu jest używane rozszerzenie Bicep dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.

Tworzenie szablonu Bicep z parametrami

  1. Otwórz Visual Studio Code.

  2. Utwórz nowy plik o nazwie main.bicep.

  3. Zapisz pusty plik, aby program Visual Studio Code ładował narzędzia Bicep.

    Możesz wybrać pozycję Plik>Zapisz jako lub wybrać Ctrl+S w systemie Windows (⌘+S w systemie macOS). Pamiętaj, gdzie został zapisany plik. Na przykład możesz utworzyć folder scripts , aby go zapisać.

  4. Dodaj następującą zawartość do pliku. Szablon zostanie wdrożony wkrótce. Wprowadź zawartość samodzielnie zamiast kopiować i wklejać, aby zobaczyć, jak narzędzia ułatwiają pisanie plików Bicep.

    param environmentName string = 'dev'
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    param appServicePlanInstanceCount int = 1
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    param location string = 'eastus'
    
    var appServicePlanName = '${environmentName}-${solutionName}-plan'
    var appServiceAppName = '${environmentName}-${solutionName}-app'
    

    W tym miejscu tworzysz kilka parametrów i używasz kombinacji typów. Definiujesz wartości domyślne dla każdego parametru. Niektóre wartości domyślne obejmują interpolację ciągów i uniqueString() funkcję.

    Napiwek

    Funkcja jest przydatna uniqueString() do tworzenia globalnie unikatowych nazw zasobów. Zwraca on ciąg, który jest taki sam w każdym wdrożeniu w tej samej grupie zasobów, ale różni się podczas wdrażania w różnych grupach zasobów lub subskrypcjach.

    Definiujesz również zmienne tworzące nazwy planu usługi aplikacja systemu Azure Service i aplikacji usługi App Service. Ich wartości obejmują niektóre określone parametry. Wartości parametrów można zastąpić przez użytkownika, który wykonuje wdrożenie, ale wartości zmiennych nie mogą być zastępowane.

    Napiwek

    Określasz, że location parametr powinien być ustawiony na westus3wartość . Zwykle zasoby są tworzone w tej samej lokalizacji co grupa zasobów przy użyciu resourceGroup().location właściwości . Jednak podczas pracy z piaskownicą usługi Microsoft Learn musisz użyć niektórych regionów platformy Azure, które nie są zgodne z lokalizacją grupy zasobów.

  5. W pliku main.bicep w programie Visual Studio Code dodaj następujący kod w dolnej części pliku:

    resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSku.name
        tier: appServicePlanSku.tier
        capacity: appServicePlanInstanceCount
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    

    Zwróć uwagę, że zasoby używają wartości zdefiniowanych parametrów.

  6. Zapisz zmiany w pliku.

Dodawanie opisów parametrów

  1. W pliku main.bicep w programie Visual Studio Code dodaj @description dekorator bezpośrednio powyżej każdego parametru utworzonego w poprzednim zadaniu. Parametry powinny wyglądać podobnie do tego przykładu:

    @description('The name of the environment. This must be dev, test, or prod.')
    param environmentName string = 'dev'
    
    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
    @description('The number of App Service plan instances.')
    param appServicePlanInstanceCount int = 1
    
    @description('The name and tier of the App Service plan SKU.')
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    
    @description('The Azure region into which the resources should be deployed.')
    param location string = 'eastus'
    
  2. Zapisz zmiany w pliku.

Ogranicz wartości wejściowe

Twoja firma będzie wdrażać aplikację HR w trzech środowiskach: dev, testi prod. Ograniczysz parametr tak environmentName , aby zezwalał tylko na te trzy wartości.

  1. W pliku main.bicep w programie Visual Studio Code znajdź environmentName parametr . @allowed Wstaw dekorator pod jego @description dekoratorem. Po zakończeniu parametr powinien wyglądać następująco:

    @description('The name of the environment. This must be dev, test, or prod.')
    @allowed([
      'dev'
      'test'
      'prod'
    ])
    param environmentName string = 'dev'
    

    Zwróć uwagę, że ograniczasz wartość parametru dla environmentName parametru tylko devdo wartości , i .prodtest Jeśli w przyszłości zostanie dodanych więcej środowisk, musisz zaktualizować tę listę.

  2. Zapisz zmiany w pliku.

Ogranicz długość danych wejściowych

Parametr solutionName służy do generowania nazw zasobów. Chcesz wymusić minimalną długość 5 znaków i maksymalną długość 30 znaków.

  1. W pliku main.bicep w programie Visual Studio Code znajdź solutionName parametr . Dodaj @minLength i @maxLength dekoratory pod dekoratorem @description . Po zakończeniu parametr powinien wyglądać następująco:

    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    @minLength(5)
    @maxLength(30)
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
  2. Zapisz zmiany w pliku.

Ogranicz wartości liczbowe

Następnie upewnij się, że appServicePlanInstanceCount parametr zezwala tylko na wartości z zakresu od 1 do 10.

  1. W pliku main.bicep w programie Visual Studio Code znajdź appServicePlanInstanceCount parametr . Dodaj @minValue i @maxValue dekoratory pod dekoratorem @description . Po zakończeniu parametr powinien wyglądać następująco:

    @description('The number of App Service plan instances.')
    @minValue(1)
    @maxValue(10)
    param appServicePlanInstanceCount int = 1
    
  2. Zapisz zmiany w pliku.

Weryfikowanie pliku Bicep

Po zakończeniu wszystkich powyższych zmian plik Bicep powinien wyglądać następująco:

@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
  'dev'
  'test'
  'prod'
])
param environmentName string = 'dev'

@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'

@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1

@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
  name: 'F1'
  tier: 'Free'
}

@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'

var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'

resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSku.name
    tier: appServicePlanSku.tier
    capacity: appServicePlanInstanceCount
  }
}

resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
  name: appServiceAppName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

Jeśli tak nie jest, skopiuj przykład lub dostosuj szablon tak, aby był zgodny z przykładem.

Wdrażanie szablonu Bicep na platformie Azure

Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano interfejs wiersza polecenia platformy Azure i pamiętaj, aby zalogować się przy użyciu tego samego konta, które zostało użyte do aktywowania piaskownicy.

  1. W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.

  2. Jeśli powłoka wyświetlana po prawej stronie okna terminalu jest powłoka bash, prawidłowa powłoka jest otwarta i możesz przejść do następnej sekcji.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z wyświetloną opcją powłoki Bash.

  3. Jeśli zostanie wyświetlona powłoka inna niż powłoka bash , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję Azure Cloud Shell (Bash).

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z wyświetloną listą rozwijaną powłoki terminalu i wybraną pozycją Domyślna powłoka Git Bash.

  4. Na liście powłok terminali wybierz pozycję bash.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z wybranym terminalem powłoki Bash.

  5. W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć następującego polecenia:

    cd templates
    

Instalowanie aplikacji Bicep

Uruchom następujące polecenie, aby upewnić się, że masz najnowszą wersję aplikacji Bicep:

az bicep install && az bicep upgrade

Logowanie się do platformy Azure

  1. W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:

    az login
    
  2. W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.

    W terminalu programu Visual Studio Code zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem.

  3. Ustaw domyślną subskrypcję dla wszystkich poleceń interfejsu wiersza polecenia platformy Azure uruchamianych w tej sesji.

    az account set --subscription "Concierge Subscription"
    

    Uwaga

    Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję. Jeśli poprzednie polecenie zakończyło się pomyślnie i zostanie wyświetlona tylko jedna subskrypcja Concierge, pomiń kolejne dwa kroki.

  4. Pobierz identyfikatory subskrypcji Concierge.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Ustaw domyślną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp ciąg {your subscription ID} najnowszym identyfikatorem subskrypcji Concierge.

    az account set --subscription {your subscription ID}
    

Ustawianie domyślnej grupy zasobów

W przypadku korzystania z interfejsu wiersza polecenia platformy Azure możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń interfejsu wiersza polecenia platformy Azure w tym ćwiczeniu. Ustaw wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

Wdrażanie szablonu na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Uruchom następujący kod z terminalu w programie Visual Studio Code, aby wdrożyć szablon Bicep na platformie Azure. Nie musisz określać wartości parametrów, ponieważ mają one określone wartości domyślne. Ten proces może potrwać minutę lub dwie, a następnie zobaczysz pomyślne wdrożenie.

az deployment group create --template-file main.bicep

W terminalu zobaczysz komunikat Running....

Aby wdrożyć ten szablon na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano program Azure PowerShell i zaloguj się do tego samego konta, na którym aktywowano piaskownicę.

  1. W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.

  2. Jeśli powłoka wyświetlana po prawej stronie okna terminalu to powershell lub pwsh, prawidłowa powłoka jest otwarta i możesz przejść do następnej sekcji.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z opcją pwsh wyświetlaną na liście rozwijanej powłoki.

  3. Jeśli zostanie wyświetlona powłoka inna niż powershell lub pwsh , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję PowerShell.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z wyświetloną listą rozwijaną powłoki terminalu i wybraną pozycją Programu PowerShell.

  4. Na liście powłok terminali wybierz pozycję powershell lub pwsh.

    Zrzut ekranu przedstawiający okno terminalu programu Visual Studio Code z wybranym terminalem programu PowerShell.

  5. W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć tego polecenia:

    Set-Location -Path templates
    

Instalowanie interfejsu wiersza polecenia Bicep

Aby użyć aplikacji Bicep z poziomu programu Azure PowerShell, zainstaluj interfejs wiersza polecenia Bicep.

Logowanie się na platformie Azure przy użyciu programu Azure PowerShell

  1. W terminalu programu Visual Studio Code uruchom następujące polecenie:

    Connect-AzAccount
    

    Zostanie otwarta przeglądarka umożliwiająca zalogowanie się do konta platformy Azure.

  2. Po zalogowaniu się na platformie Azure w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem.

    Jeśli aktywowano piaskownicę, zostanie wyświetlona subskrypcja o nazwie Subskrypcja Concierge. Użyj go w pozostałej części ćwiczenia.

  3. Ustaw domyślną subskrypcję dla wszystkich poleceń programu Azure PowerShell uruchamianych w tej sesji.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    Uwaga

    Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję. Jeśli poprzednie polecenie zakończyło się pomyślnie i zostanie wyświetlona tylko jedna subskrypcja Concierge, pomiń kolejne dwa kroki.

  4. Uzyskaj identyfikator subskrypcji. Uruchomienie następującego polecenia zawiera listę subskrypcji i ich identyfikatorów. Concierge SubscriptionWyszukaj ciąg , a następnie skopiuj identyfikator z drugiej kolumny. Wygląda to mniej więcej tak: cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  5. Zmień aktywną subskrypcję na Subskrypcja Concierge. Pamiętaj, aby zastąpić ciąg {Identyfikator subskrypcji} skopiowaną wartością.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

Ustawianie domyślnej grupy zasobów

Możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń programu Azure PowerShell w tym ćwiczeniu. Ustaw tę wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

Wdrażanie szablonu na platformie Azure przy użyciu programu PowerShell

Wdróż szablon na platformie Azure przy użyciu następującego polecenia programu Azure PowerShell w terminalu. Nie musisz określać wartości parametrów, ponieważ mają one określone wartości domyślne. Ten proces może potrwać minutę lub dwie, a następnie zobaczysz pomyślne wdrożenie.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Weryfikowanie wdrożenia

  1. Przejdź do witryny Azure Portal i upewnij się, że jesteś w subskrypcji piaskownicy:

    1. Wybierz swój awatar w prawym górnym rogu strony.
    2. Wybierz pozycję Przełącz katalog. Z listy wybierz katalog Microsoft Learn Sandbox.
  2. Na panelu po lewej stronie wybierz pozycję Grupy zasobów.

  3. Wybierz pozycję [nazwa grupy zasobów piaskownicy].

  4. W obszarze Przegląd widać, że jedno wdrożenie zakończyło się pomyślnie.

    Zrzut ekranu przedstawiający interfejs witryny Azure Portal dla przeglądu grupy zasobów z sekcją wdrożenia pokazującą, że zakończyło się to pomyślnie.

  5. Wybierz pozycję 1 udane, aby wyświetlić szczegóły wdrożenia.

    Zrzut ekranu przedstawiający interfejs witryny Azure Portal dla wdrożeń z wyświetlonym wdrożeniem i stanem powodzenia.

  6. Wybierz wdrożenie o nazwie main , aby zobaczyć, jakie zasoby zostały wdrożone, a następnie wybierz pozycję Szczegóły wdrożenia, aby je rozwinąć. W takim przypadku istnieje plan usługi App Service i aplikacja.

    Zrzut ekranu przedstawiający interfejs witryny Azure Portal dla określonego wdrożenia z wyświetlonym planem usługi App Service i aplikacją.

  7. W menu po lewej stronie wybierz pozycję Dane wejściowe.

    Zrzut ekranu przedstawiający interfejs witryny Azure Portal dla określonego wdrożenia z wyróżnionym elementem menu

  8. Zwróć uwagę, że wyświetlane są parametry i ich wartości.

    Zrzut ekranu przedstawiający interfejs witryny Azure Portal dla określonego wdrożenia z wartościami parametrów.

  9. Pozostaw tę stronę otwartą w przeglądarce. Ponownie sprawdzisz wdrożenia później.