Tutorial: Verwenden von Azure-Schnellstartvorlagen

Azure-Schnellstartvorlagen ist ein Repository von Vorlagen, die von der Community entwickelt wurden. Sie können die Beispielvorlagen in der Vorlagenentwicklung nutzen. In diesem Tutorial finden Sie die Definition einer Websiteressource, die Sie Ihrer eigenen Vorlage hinzufügen. Der Leitfaden dauert ungefähr 12 Minuten.

Voraussetzungen

Wir empfehlen, das Tutorial zu exportieren Vorlagen durchzuführen. Dies ist jedoch keine Voraussetzung.

Visual Studio Code muss mit der Azure Resource Manager-Tools-Erweiterung installiert und funktionsfähig sein, und Sie benötigen entweder Azure PowerShell oder die Azure-Befehlszeilenschnittstelle (Azure CLI). Weitere Informationen finden Sie unter Vorlagentools.

Überprüfen der Vorlage

Am Ende des vorherigen Tutorials enthielt Ihre Vorlage die folgenden JSON-Datei:

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

Diese Vorlage funktioniert für die Bereitstellung von Speicherkonten und App Service-Plänen, Sie sollten ihr jedoch eine Website hinzufügen. Sie können vorgefertigte Vorlagen verwenden, um schnell den JSON-Code zu ermitteln, der für die Bereitstellung einer Ressource erforderlich ist.

Suchen nach Vorlagen

  1. OffenAzure Schnellstartvorlagestart Templates

  2. Wählen Sie die Kachel mit dem Titel Deploy a basic Linux web app (Grundlegende Linux-Web-App bereitstellen) aus. Hier ist der direkte Link, falls Sie sie nicht finden können.

  3. Wählen Sie Auf GitHub suchen aus.

  4. Wählen Sie azuredeploy.json aus.

  5. Überprüfen Sie die Vorlage. Suchen Sie nach der Microsoft.Web/sites Ressource.

    Website: Resource Manager-Schnellstartvorlage

Überarbeiten der vorhandenen Vorlage

Zusammenführen der Schnellstartvorlage mit der vorhandenen Vorlage:

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

Der Web-App-Name muss in Azure eindeutig sein. Um doppelte Namen zu vermeiden, wurde die VariablewebAppPortalName von "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" in "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]" aktualisiert.

Fügen Sie am Ende der Microsoft.Web/serverfarms-Definition ein Komma hinzu, um die Ressourcendefinition von der Microsoft.Web/sites-Definition zu trennen.

In dieser neuen Ressource sind einige wichtige Features zu beachten.

Sie werden feststellen, dass sie ein Element mit dem Namen dependsOn enthält, das auf den App Service-Plan festgelegt ist. Diese Einstellung ist erforderlich, da der App Service-Plan vorhanden sein muss, bevor die Web-App erstellt wird. Das dependsOn-Element teilt Resource Manager mit, wie die Ressourcen für die Bereitstellung zu sortieren sind.

Die serverFarmId-Eigenschaft verwendet die Funktion resourceId. Diese Funktion ruft den eindeutigen Bezeichner für eine Ressource ab. In diesem Fall wird der eindeutige Bezeichner für den App Service-Plan abgerufen. Die Web-App ist einem bestimmten App Service-Plan zugeordnet.

Bereitstellen der Vorlage

Zum Bereitstellen einer Vorlage verwenden Sie entweder die Azure CLI oder Azure PowerShell.

Falls Sie die Ressourcengruppe noch nicht erstellt haben, folgen Sie den Anweisungen unter Erstellen einer Ressourcengruppe. Dieses Beispiel setzt voraus, dass Sie die Variable templateFile wie im ersten Tutorial beschrieben auf den Pfad zur Vorlagendatei festgelegt haben.

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

Hinweis

Wenn bei der Bereitstellung ein Fehler auftritt, verwenden Sie den Schalter verbose, um Informationen zu den erstellten Ressourcen abzurufen. Verwenden Sie den Schalter debug, um weitere Informationen zum Debuggen zu erhalten.

Bereinigen von Ressourcen

Wenn Sie mit dem nächsten Tutorial fortfahren, müssen Sie die Ressourcengruppe nicht löschen.

Wenn Sie jetzt aufhören, sollten Sie die Ressourcengruppe löschen.

  1. Wählen Sie im Azure-Portal im linken Menü die Option Ressourcengruppen aus.
  2. Geben Sie den Ressourcengruppennamen im Textfeld Nach einem beliebigen Feld filtern ein.
  3. Aktivieren Sie das Kontrollkästchen neben myResourceGroup, und wählen Sie myResourceGroup oder Ihren Ressourcengruppennamen aus.
  4. Wählen Sie Ressourcengruppe löschen aus dem Menü ganz oben aus.

Nächste Schritte

Sie haben gelernt, wie Sie eine Schnellstartvorlage für Ihre Vorlagenentwicklung verwenden. Im nächsten Tutorial fügen Sie den Ressourcen Tags hinzu.