Delen via


Zelfstudie: Voorwaarden gebruiken in ARM-sjablonen

Leer hoe u Azure-resources kunt implementeren op basis van voorwaarden in een ARM-sjabloon (Azure Resource Manager).

In de zelfstudie Resource-implementatievolgorde instellen maakt u een virtuele machine, een virtueel netwerk en enkele andere afhankelijke resources, waaronder een opslagaccount. In plaats van elke keer een nieuw opslagaccount te maken, laat u gebruikers kiezen of ze een nieuw opslagaccount willen maken of een bestaand opslagaccount willen gebruiken. Om dit doel te bereiken, definieert u een extra parameter. Als de waarde van de parameter new is, wordt er een nieuw opslagaccount gemaakt. Anders wordt een bestaand opslagaccount met de gegeven naam gebruikt.

Diagram: voorwaarden gebruiken in Resource Manager-sjablonen

Deze zelfstudie bestaat uit de volgende taken:

  • Een snelstartsjabloon openen
  • De sjabloon aanpassen
  • De sjabloon implementeren
  • Resources opschonen

Deze zelfstudie behandelt alleen een basisscenario voor het gebruik van voorwaarden. Zie voor meer informatie:

Zie Complexe cloudimplementaties beheren met behulp van geavanceerde ARM-sjabloonfuncties voor een Learn-module die voorwaarden behandelt.

Als u geen abonnement op Azure hebt, maakt u een gratis account voordat u begint.

Vereisten

Als u dit artikel wilt voltooien, hebt u het volgende nodig:

Een snelstartsjabloon openen

Snelstartsjablonen voor Azure is een opslagplaats voor ARM-sjablonen. In plaats van een sjabloon helemaal vanaf de basis te maken, kunt u een voorbeeldsjabloon zoeken en aanpassen. De sjabloon die in deze zelfstudie wordt gebruikt, heet Deploy a simple Windows VM (Een eenvoudige Windows-VM implementeren).

  1. Selecteer in Visual Studio Code Bestand>Bestand openen.

  2. Plak de volgende URL in Bestandsnaam:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Selecteer Openen om het bestand te openen.

  4. Er worden zes resources gedefinieerd met de sjabloon:

    Het is een goed idee om de sjabloonreferentie door te nemen voordat u een sjabloon aanpast.

  5. Selecteer Bestand>Opslaan als om het bestand op uw lokale computer op te slaan als azuredeploy.json.

De sjabloon aanpassen

Breng de volgende twee wijzigingen aan in de bestaande sjabloon:

  • Voeg een parameter voor de opslagaccountnaam toe. Gebruikers kunnen een nieuwe opslagaccountnaam of een bestaande opslagaccountnaam opgeven.
  • Voeg een nieuwe parameter toe met de naam newOrExisting. De implementatie gebruikt deze parameter om te bepalen of er een nieuw opslagaccount moet worden gemaakt of dat er een bestaand opslagaccount moet worden gebruikt.

Hier volgt de procedure waarmee de wijzigingen kunnen worden aangebracht:

  1. Open azuredeploy.json in Visual Studio Code.

  2. Vervang de drie variables('storageAccountName') overal in de sjabloon door parameters('storageAccountName') .

  3. Verwijder de volgende variabeledefinitie:

    Schermopname waarin de variabeledefinities die u moet verwijderen, zijn gemarkeerd.

  4. Voeg de volgende twee parameters toe aan het begin van de parametersectie:

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

    Druk op Alt+Shift+F om de sjabloon in Visual Studio Code in te delen.

    De bijgewerkte parameterdefinitie ziet er als volgt uit:

    Voorwaarde gebruiken in Resource Manager

  5. Voeg de volgende regel toe aan het begin van de definitie van het opslagaccount.

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

    Met de voorwaarde wordt de waarde van de parameter newOrExisting gecontroleerd. Als de parameterwaarde new is, wordt er een opslagaccount gemaakt.

    De bijgewerkte definitie van het opslagaccount ziet er als volgt uit:

    Schermopname van de bijgewerkte definitie van het opslagaccount.

  6. Werk de eigenschap storageUri van de resourcedefinitie van de virtuele machine bij met de volgende waarde:

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

    Deze wijziging is nodig als u een bestaand opslagaccount gebruikt onder een andere resourcegroep.

  7. Sla de wijzigingen op.

De sjabloon implementeren

  1. Meld u aan bij Cloud Shell.

  2. Kies uw favoriete omgeving door in de linkerbovenhoek PowerShell of Bash (voor CLI) te selecteren. U moet de shell opnieuw starten wanneer u overschakelt.

    Bestand uploaden in Cloud Shell in de Azure-portal

  3. Selecteer Upload/download files en selecteer Uploaden. Zie de vorige schermafbeelding. Selecteer het bestand dat u in de vorige sectie hebt opgeslagen. Nadat het bestand is geüpload, kunt u de opdracht ls en de opdracht cat gebruiken om te controleren of het bestand is geüpload.

  4. Gebruik het volgende PowerShell-script om de sjabloon te implementeren.

    Belangrijk

    De naam van het opslagaccount moet uniek zijn in Azure. De naam mag alleen kleine letters of cijfers bevatten. De naam mag niet langer zijn dan 24 tekens. De naam van het opslagaccount is de projectnaam waaraan store is toegevoegd. Zorg ervoor dat de projectnaam en de gegenereerde opslagaccountnaam voldoen aan de vereisten voor opslagaccountnamen.

    $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 ..."
    

    Notitie

    De implementatie mislukt als newOrExisting de waarde new heeft, maar het opslagaccount met de opgegeven naam al bestaat.

Maak in dit geval een andere implementatie door newOrExisting in te stellen op existing, en de naam van een bestaand opslagaccount op te geven. Zie Een opslagaccount maken voor informatie over het vooraf maken van een opslagaccount.

Resources opschonen

Schoon de geïmplementeerd Azure-resources, wanneer u deze niet meer nodig hebt, op door de resourcegroep te verwijderen. Als u de resourcegroep wilt verwijderen, selecteert u Uitproberen om de Cloud Shell te openen. Plak het PowerShell-script door met de rechtermuisknop op het shell-venster te klikken en Plakken te selecteren.

$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 ..."

Volgende stappen

In deze zelfstudie hebt u een sjabloon gemaakt waarmee gebruikers kunnen kiezen tussen het maken van een nieuw opslagaccount en het gebruiken van een bestaand opslagaccount. Zie de volgende zelfstudie voor informatie over het ophalen van geheimen uit Azure Key Vault en hoe u deze geheimen als wachtwoorden gebruikt in de sjabloonimplementatie: