Självstudie: Använda Azure-snabbstartsmallar
Azure-snabbstartsmallar är en lagringsplats med mallar som har bidragit med communityn. Du kan använda exempelmallarna i din mallutveckling. I den här självstudien hittar du en webbplatsresursdefinition och lägger till den i din egen mall. Den här instruktionen tar 12 minuter att slutföra.
Förutsättningar
Vi rekommenderar att du slutför självstudien om exporterade mallar, men det krävs inte.
Du måste ha Visual Studio Code med tillägget Resource Manager Tools och antingen Azure PowerShell eller Azure Command-Line Interface (CLI). Mer information finns i mallverktyg.
Granska mall
I slutet av föregående självstudie hade mallen följande JSON-fil:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('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
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Den här mallen fungerar för att distribuera lagringskonton och App Service-planer, men du kanske vill lägga till en webbplats i den. Du kan använda fördefinierade mallar för att snabbt identifiera den JSON som krävs för att distribuera en resurs.
Sök mall
Öppna Azure-snabbstartsmallar
Välj panelen med rubriken Distribuera en grundläggande Linux-webbapp. Här är direktlänken om du har problem med att hitta den.
Välj Bläddra på GitHub.
Välj azuredeploy.json.
Granska mallen. Leta efter resursen
Microsoft.Web/sites
.
Ändra befintlig mall
Sammanfoga snabbstartsmallen med den befintliga mallen:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
},
"webAppName": {
"type": "string",
"metadata": {
"description": "Base name of the resource such as web app name and app service plan "
},
"minLength": 2
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "The Runtime stack of current web app"
}
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
"webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('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": "2021-03-01",
"name": "[variables('webAppPortalName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
],
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Webbappens namn måste vara unikt i Hela Azure. För att förhindra dubbletter av namn uppdateras variabeln webAppPortalName
från "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]"
till "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
.
Lägg till ett kommatecken i slutet av Microsoft.Web/serverfarms
definitionen för att skilja resursdefinitionen Microsoft.Web/sites
från definitionen.
Det finns några viktiga funktioner att notera i den här nya resursen.
Den har ett element med namnet dependsOn
som är inställt på App Service-planen. Den här inställningen krävs eftersom App Service-planen måste finnas innan webbappen skapas. Elementet dependsOn
anger för Resource Manager hur resurserna ska beställas för distribution.
Egenskapen serverFarmId
använder funktionen resourceId . Den här funktionen hämtar den unika identifieraren för en resurs. I det här fallet hämtar den den unika identifieraren för App Service-planen. Webbappen är associerad med en specifik App Service-plan.
Distribuera mallen
Använd antingen Azure CLI eller Azure PowerShell för att distribuera en mall.
Om du inte har skapat resursgruppen kan du läsa Skapa resursgrupp. Exemplet förutsätter att du har angett variabeln templateFile till sökvägen till mallfilen, som du ser i den första självstudien.
New-AzResourceGroupDeployment `
-Name addwebapp `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS `
-webAppName demoapp
Anteckning
Om distributionen misslyckas använder du växeln verbose
för att hämta information om de resurser som du skapar. Använd växeln debug
för att få mer information om felsökning.
Rensa resurser
Om du går vidare till nästa självstudie behöver du inte ta bort resursgruppen.
Om du stoppar nu kanske du vill ta bort resursgruppen.
- I Azure Portal väljer du Resursgrupper på den vänstra menyn.
- Ange resursgruppens namn i fältet Filtrera efter fält... text.
- Markera kryssrutan bredvid myResourceGroup och välj myResourceGroup eller resursgruppens namn.
- Välj Ta bort resursgrupp på den översta menyn.
Nästa steg
Du har lärt dig hur du använder en snabbstartsmall för din mallutveckling. I nästa självstudie lägger du till taggar till resurserna.