Delen via


Zelfstudie: Azure-snelstartsjablonen gebruiken

Azure-snelstartsjablonen is een opslagplaats met sjablonen die door de community zijn bijgedragen. U kunt de voorbeeldsjablonen gebruiken bij de ontwikkeling van eigen sjablonen. In deze zelfstudie zoekt u een definitie van een websiteresource en voegt u deze toe aan uw eigen sjabloon. Deze instructie duurt 12 minuten .

Vereisten

Het wordt aangeraden om eerst de zelfstudie over geëxporteerde sjablonen te voltooien, maar dit is niet verplicht.

U moet Beschikken over Visual Studio Code met de extensie Resource Manager Tools en Azure PowerShell of Azure Command-Line Interface (CLI). Zie Hulpprogramma's voor sjablonen voor meer informatie.

Sjabloon controleren

Aan het einde van de vorige zelfstudie bevat uw sjabloon het volgende JSON-bestand:

{
  "$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]"
    }
  }
}

Deze sjabloon werkt goed voor het implementeren van opslagaccounts en App Service-plannen, maar misschien is het handig om er een website aan toe te voegen. U kunt vooraf gemaakte sjablonen gebruiken om snel de JSON te vinden die vereist is voor het implementeren van een resource.

Sjabloon zoeken

  1. Azure-snelstartsjablonen openen

  2. Selecteer de tegel met de naam Basis-web-app voor Linux. Als u deze niet kunt vinden, is dit de directe link.

  3. Selecteer Zoeken op GitHub.

  4. Selecteer azuredeploy.json.

  5. Bekijk de sjabloon. Zoek de Microsoft.Web/sites resource.

    Resource Manager-snelstartsjabloon voor website

Bestaande sjabloon aanpassen

Voeg de snelstartsjabloon samen met de bestaande sjabloon:

{
  "$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]"
    }
  }
}

De naam van de web-app moet uniek zijn binnen Azure. Om dubbele namen te voorkomen, wordt de webAppPortalName variabele bijgewerkt van "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" naar "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Voeg aan het einde van de definitie Microsoft.Web/serverfarms een komma toe om de resourcedefinitie te scheiden van de definitie van Microsoft.Web/sites.

Deze nieuwe resource heeft een aantal functies die van belang zijn.

Het heeft een element met de naam dependsOn dat is ingesteld op het App Service-plan. Deze instelling is vereist omdat het App Service-plan moet bestaan voordat de web-app wordt gemaakt. Het element dependsOn geeft aan Resource Manager door hoe de resources moeten worden gerangschikt voor implementatie.

De eigenschap serverFarmId maakt gebruik van de functie resourceId. Deze functie haalt de unieke id voor een resource op. In dit geval wordt de unieke id voor het App Service-plan opgehaald. De web-app is gekoppeld aan één specifiek App Service-plan.

Sjabloon implementeren

U kunt Azure CLI of Azure PowerShell gebruiken om een sjabloon te implementeren.

Zie Resourcegroep maken als u de resourcegroep nog niet hebt gemaakt. In het voorbeeld wordt ervan uitgegaan dat u de variabele templateFile hebt ingesteld op het pad naar het sjabloonbestand, zoals weergegeven in de eerste zelfstudie.

New-AzResourceGroupDeployment `
  -Name addwebapp `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS `
  -webAppName demoapp

Notitie

Als de implementatie mislukt, gebruikt u de verbose schakeloptie om informatie op te halen over de resources die u maakt. Gebruik de schakeloptie debug voor meer informatie over foutopsporing.

Resources opschonen

Als u verdergaat met de volgende zelfstudie, hoeft u de resourcegroep niet te verwijderen.

Als u nu stopt, wilt u de resourcegroep mogelijk verwijderen.

  1. Selecteer in het Azure Portal Resourcegroepen in het menu links.
  2. Typ de naam van de resourcegroep in het tekstveld Filteren op een veld...
  3. Schakel het selectievakje naast myResourceGroup in en selecteer myResourceGroup of de naam van uw resourcegroep.
  4. Selecteer Resourcegroep verwijderen in het bovenste menu.

Volgende stappen

U hebt geleerd hoe u een snelstartsjabloon kunt gebruiken om zelf sjablonen te ontwikkelen. In de volgende zelfstudie gaat u tags toevoegen aan de resources.