Zelfstudie: Een lokale ARM-sjabloon implementeren
Ontdek hoe u een ARM-sjabloon (Azure Resource Manager) kunt implementeren vanaf de lokale machine. Dit neemt ongeveer 8 minuten in beslag.
Deze zelfstudie is de eerste van een reeks. In deze reeks deelt u de sjabloon op in modules door een gekoppelde sjabloon te maken. U slaat het gekoppelde sjabloon op in een opslagaccount en beveiligt dit met een SAS-token. U leert ook hoe u een DevOps-pijplijn maakt om sjablonen te implementeren. Deze reeks gaat over de implementatie van sjablonen. Als u wilt leren hoe u een sjabloon kunt implementeren, bekijk dan de zelfstudies voor beginners.
Hulpprogramma's installeren
Laten we er allereerst voor zorgen dat u de nodige hulpprogramma's heeft om sjablonen te implementeren.
Implementatie via opdrachtregels
U hebt Azure PowerShell of Azure CLI nodig om de sjabloon te implementeren. Zie voor installatie-instructies:
- Azure PowerShell installeren
- Azure CLI installeren in Windows
- Azure CLI installeren in Linux
- Azure CLI installeren in macOS
Nadat u Azure PowerShell of Azure CLI hebt geïnstalleerd moet u zich voor de eerste keer aanmelden. Bekijk Aanmelden - PowerShell of Aanmelden - Azure CLI voor ondersteuning.
Editor (optioneel)
Sjablonen zijn JSON-bestanden. Om sjablonen te controleren/bewerken heeft u een goede JSON-editor nodig. We raden Visual Studio Code met de extensie Resource Manager Tools aan. Als u deze hulpprogramma's wilt installeren, raadpleegt u quickstart: ARM-sjablonen maken met Visual Studio Code.
Sjabloon controleren
Het sjabloon implementeert een opslagaccount, App Service-plan en webtoepassing. Als u de sjabloon wilt aanmaken, doorloop dan de zelfstudie over Quickstart-sjablonen. Dat is echter geen vereiste 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": "2023-01-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-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": "2022-09-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 alleen cijfers en kleine letters bevatten. 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 de 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/Azure CLI en 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]
Een resourcegroep maken
Wanneer u een sjabloon implementeert, geeft u een resourcegroep op die de resources zal bevatten. Voordat u de opdracht voor de implementatie uitvoert, maakt u de resourcegroep met behulp van Azure CLI of Azure PowerShell. Selecteer de tabbladen in de volgende codesectie om te kiezen tussen Azure PowerShell en Azure CLI. 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 voor meer informatie over de implementatie van sjablonen met Azure PowerShell.
Resources opschonen
Schoon de geïmplementeerd resources op door de resourcegroep te verwijderen.
- Selecteer Resourcegroep in het linkermenu van Azure Portal.
- Voer de naam van de resourcegroep in het veld Filter by name in.
- Selecteer de naam van de resourcegroep.
- Selecteer Resourcegroep verwijderen in het bovenste menu.
Volgende stappen
U hebt geleerd hoe u een lokale sjabloon kunt implementeren. In de volgende zelfstudie splitst u de sjabloon op in een hoofdsjabloon en een gekoppelde sjabloon en leert u hoe u de gekoppelde sjabloon kunt opslaan en beveiligen.