Udostępnij za pośrednictwem


Samouczek: Używanie warunku w szablonach usługi ARM

Dowiedz się, jak wdrażać zasoby platformy Azure na podstawie warunków w szablonie usługi Azure Resource Manager (szablon usługi ARM).

W samouczku Ustawianie kolejności wdrażania zasobów tworzysz maszynę wirtualną, sieć wirtualną i kilka innych zasobów zależnych, w tym konto magazynu. Zamiast za każdym razem tworzyć nowe konto magazynu, zezwalasz użytkownikom na utworzenie nowego konta magazynu lub użycie istniejącego. Aby osiągnąć ten cel, definiujesz dodatkowy parametr. Jeśli wartość parametru jest nowa, zostanie utworzone nowe konto magazynu. W przeciwnym razie jest używane istniejące konto magazynu o podanej nazwie.

Resource Manager szablonu użyj diagramu warunku

Ten samouczek obejmuje następujące zadania:

  • Otwieranie szablonu szybkiego startu
  • Modyfikowanie szablonu
  • Wdrożenie szablonu
  • Czyszczenie zasobów

W tym samouczku omówiono tylko podstawowy scenariusz używania warunków. Aby uzyskać więcej informacji, zobacz:

Aby zapoznać się z modułem Learn obejmującym warunki, zobacz Zarządzanie złożonymi wdrożeniami w chmurze przy użyciu zaawansowanych funkcji szablonu usługi ARM.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Aby ukończyć pracę z tym artykułem, potrzebne są następujące zasoby:

Otwieranie szablonu szybkiego startu

Szablony szybkiego startu platformy Azure to repozytorium szablonów usługi ARM. Zamiast tworzyć szablon od podstaw, możesz znaleźć szablon przykładowy i zmodyfikować go. Szablon używany w tym samouczku nazywa się Wdrożenie prostej maszyny wirtualnej z systemem Windows.

  1. W Visual Studio Code wybierz pozycję Plik>Otwórz plik.

  2. W polu File name (Nazwa pliku) wklej następujący adres URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Wybierz pozycję Open (Otwórz), aby otworzyć plik.

  4. Szablon definiuje sześć zasobów:

    Warto przejrzeć odwołanie do szablonu przed dostosowaniem szablonu.

  5. Wybierz pozycję Zapisz plik>jako , aby zapisać kopię pliku na komputerze lokalnym o nazwie azuredeploy.json.

Modyfikowanie szablonu

Wprowadź dwie zmiany do istniejącego szablonu:

  • Dodaj parametr nazwy konta magazynu. Użytkownicy mogą określić nazwę nowego lub istniejącego konta magazynu.
  • Dodaj nowy parametr o nazwie newOrExisting. Wdrożenie używa tego parametru do określenia, czy utworzyć nowe konto magazynu, czy użyć istniejącego konta magazynu.

Poniżej przedstawiono procedurę wprowadzania zmian:

  1. Otwórz plik azuredeploy.json w programie Visual Studio Code.

  2. Zastąp te trzy variables('storageAccountName') elementem parameters('storageAccountName') w całym szablonie.

  3. Usuń następującą definicję zmiennej:

    Zrzut ekranu przedstawiający definicje zmiennych, które należy usunąć.

  4. Dodaj następujące dwa parametry na początku sekcji parametrów:

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    },
    

    Naciśnij klawisze Alt+Shift+F, aby sformatować szablon w Visual Studio Code.

    Zaktualizowana definicja parametrów wygląda następująco:

    Warunek użycia w usłudze Resource Manager

  5. Dodaj następujący wiersz na początku definicji konta magazynu.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    Warunek sprawdza wartość parametru newOrExisting. Jeśli wartość parametru to new, przy wdrażaniu tworzone jest konto magazynu.

    Zaktualizowana definicja konta magazynu wygląda następująco:

    Zrzut ekranu przedstawiający zaktualizowaną definicję konta magazynu.

  6. storageUri Zaktualizuj właściwość definicji zasobu maszyny wirtualnej przy użyciu następującej wartości:

    "storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
    

    Ta zmiana jest niezbędna, jeśli używasz istniejącego konta magazynu w innej grupie zasobów.

  7. Zapisz zmiany.

Wdrożenie szablonu

  1. Zaloguj się do Cloud Shell.

  2. Wybierz preferowane środowisko, wybierając pozycję PowerShell lub Bash (dla interfejsu wiersza polecenia) w lewym górnym rogu. Po przełączeniu wymagane jest ponowne uruchomienie powłoki.

    Azure Portal Cloud Shell przekazać plik

  3. Wybierz pozycję Przekaż/pobierz pliki, a następnie wybierz pozycję Przekaż. Zobacz poprzedni zrzut ekranu. Wybierz plik, który został zapisany w poprzedniej sekcji. Po przekazaniu pliku możesz użyć ls polecenia i cat polecenia , aby sprawdzić, czy plik został przekazany pomyślnie.

  4. Uruchom następujący skrypt programu PowerShell, aby wdrożyć szablon.

    Ważne

    Nazwa konta magazynu musi być unikatowa w obrębie platformy Azure. Nazwa musi zawierać tylko małe litery lub cyfry. Nie może przekraczać 24 znaków. Nazwa konta magazynu to nazwa projektu z dołączonym magazynem . Upewnij się, że nazwa projektu i nazwa wygenerowanego konta magazynu spełniają wymagania dotyczące nazwy konta magazynu.

    $projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names"
    $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)"
    $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)"
    $vmAdmin = Read-Host -Prompt "Enter the admin username"
    $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix"
    
    $resourceGroupName = "${projectName}rg"
    $storageAccountName = "${projectName}store"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $vmAdmin `
        -adminPassword $vmPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -storageAccountName $storageAccountName `
        -newOrExisting $newOrExisting `
        -TemplateFile "$HOME/azuredeploy.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    Uwaga

    Wdrożenie kończy się niepowodzeniem, jeśli newOrExisting jest nowe, ale konto magazynu o podanej nazwie konta magazynu już istnieje.

Spróbuj wykonać kolejne wdrożenie z newOrExisting ustawieniem ustawionym na istniejące i określ istniejące konto magazynu. Aby wcześniej utworzyć konto magazynu, zobacz Tworzenie konta magazynu.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie będą już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów. Aby usunąć grupę zasobów, wybierz pozycję Wypróbuj, aby otworzyć Cloud Shell. Aby wkleić skrypt programu PowerShell, kliknij prawym przyciskiem myszy okienko powłoki, a następnie wybierz polecenie Wklej.

$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

Następne kroki

W tym samouczku utworzono szablon, który pozwala użytkownikom wybrać między utworzeniem nowego konta magazynu a użyciem istniejącego konta magazynu. Aby dowiedzieć się, jak pobierać wpisy tajne z usługi Azure Key Vault i używać ich jako haseł przy wdrożeniach na podstawie szablonu, zobacz: