Delen via


Zelfstudie: Een lokale Azure Resource Manager-sjabloon implementeren

Ontdek hoe u een ARM-sjabloon (Azure Resource Manager) kunt implementeren vanaf de lokale machine. Het duurt ongeveer 8 minuten om te voltooien.

Deze zelfstudie is de eerste van een reeks. Wanneer u door de reeks gaat, maakt u de sjabloon modulair door een gekoppelde sjabloon te maken, slaat u de gekoppelde sjabloon op in een opslagaccount, beveiligt u de gekoppelde sjabloon met behulp van een SAS-token en leert u hoe u een DevOps-pijplijn maakt om sjablonen te implementeren. Deze reeks gaat over de implementatie van sjablonen. Als u de ontwikkeling van sjablonen wilt leren, raadpleegt u de zelfstudies voor beginners.

Hulpprogramma's installeren

Zorg ervoor dat u beschikt over de hulpprogramma's die u nodig hebt om sjablonen te implementeren.

Implementatie via de opdrachtregel

Als u de sjabloon wilt implementeren, hebt u Azure PowerShell of de Azure CLI nodig. Zie voor installatie-instructies:

Nadat u Azure PowerShell of de Azure CLI hebt geïnstalleerd, meldt u zich voor het eerst aan. Zie Aanmelden - PowerShell of Aanmelden - Azure CLI voor hulp.

Editor (optioneel)

Sjablonen zijn JSON-bestanden. Als u sjablonen wilt bekijken of bewerken, kunt u Visual Studio Code gebruiken.

Sjabloon controleren

Het sjabloon implementeert een opslagaccount, App Service-plan en webtoepassing. Als u geïnteresseerd bent in het maken van de sjabloon, raadpleegt u de zelfstudie Quickstart-sjablonen. U hoeft de sjabloon echter niet te maken om deze zelfstudie te voltooien.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "projectName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11,
      "metadata": {
        "description": "Specify a project name that is used to generate resource names."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify a location for the resources."
      }
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ],
      "metadata": {
        "description": "Specify the storage account type."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "Specify the Runtime stack of current web app"
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('{0}{1}', parameters('projectName'), uniqueString(resourceGroup().id))]",
    "webAppName": "[format('{0}WebApp', parameters('projectName'))]",
    "appServicePlanName": "[format('{0}Plan', parameters('projectName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[variables('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppName')]",
      "location": "[parameters('location')]",
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
      ]
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2023-01-01').primaryEndpoints]"
    }
  }
}

Belangrijk

Namen van opslagaccounts moeten uniek zijn, tussen 3 en 24 tekens lang en mogen alleen cijfers en kleine letters gebruiken. De variabele van storageAccountName de voorbeeldsjabloon combineert het maximum van 11 tekens van de projectName parameter met een uniqueString-waarde van 13 tekens.

Sla een kopie van de sjabloon op uw lokale computer op met de extensie.json , bijvoorbeeld azuredeploy.json. Verderop in deze sjabloon implementeert u deze sjabloon.

Aanmelden bij Azure

Meld u aan met uw Azure-referenties om aan de slag te gaan met Azure PowerShell of de Azure CLI om een sjabloon te implementeren.

Connect-AzAccount

Als u meerdere Azure-abonnementen hebt, selecteert u het abonnement dat u wilt gebruiken. Vervang [SubscriptionID/SubscriptionName] en de vierkante haken [] door uw abonnementsgegevens:

Set-AzContext [SubscriptionID/SubscriptionName]

Resourcegroep maken

Wanneer u een sjabloon implementeert, geeft u een resourcegroep op voor de resources. Voordat u de implementatieopdracht uitvoert, maakt u de resourcegroep met de Azure CLI of Azure PowerShell. Als u wilt kiezen tussen Azure PowerShell en de Azure CLI, selecteert u de tabbladen in de volgende codesectie. De CLI-voorbeelden in dit artikel zijn geschreven voor de Bash-shell.

$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource and resource group names"
$resourceGroupName = "${projectName}rg"

New-AzResourceGroup `
  -Name $resourceGroupName `
  -Location "Central US"

Sjabloon implementeren

Gebruik een of beide implementatie-opties om de sjabloon te implementeren.

$projectName = Read-Host -Prompt "Enter the same project name"
$templateFile = Read-Host -Prompt "Enter the template file path and file name"
$resourceGroupName = "${projectName}rg"

New-AzResourceGroupDeployment `
  -Name DeployLocalTemplate `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile $templateFile `
  -projectName $projectName `
  -verbose

Zie Resources implementeren met ARM-sjablonen en Azure PowerShell om meer te leren over het implementeren van sjablonen met behulp van Azure PowerShell.

Resources opschonen

Als u de geïmplementeerde resources wilt opschonen, verwijdert u de resourcegroep.

  1. Selecteer resourcegroep vanuit het menu links in de Azure Portal.
  2. Voer de naam van de resourcegroep in het veld Filteren op naam in.
  3. Selecteer de naam van de resourcegroep.
  4. Selecteer Resourcegroep verwijderen in het bovenste menu.

Volgende stappen

U hebt geleerd hoe u een lokale sjabloon kunt implementeren. In de volgende zelfstudie scheidt u de sjabloon in een hoofdsjabloon en een gekoppelde sjabloon. U leert ook hoe u de gekoppelde sjabloon opslaat en beveiligt.