Kurz: Použití šablon Azure pro rychlý start

Šablony azure pro rychlý start jsou úložištěm šablon, ke které přispěla komunita. Ukázkové šablony můžete použít při vývoji šablon. V tomto kurzu najdete definici prostředku webu a přidáte ji do vlastní šablony. Dokončení této instrukce trvá 12 minut .

Požadavky

Doporučujeme, abyste dokončili kurz o exportovaných šablonách, ale není to nutné.

Musíte mít Visual Studio Code s rozšířením Resource Manager Tools a Azure PowerShell nebo Rozhraní příkazového řádku (Azure Command-Line Interface). Další informace najdete v tématu Nástroje šablon.

Zkontrolovat šablonu

Na konci předchozího kurzu měla vaše šablona následující soubor JSON:

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

Tato šablona funguje pro nasazení účtů úložiště a plánů služby App Service, ale možná budete chtít přidat web. Pomocí předem připravených šablon můžete rychle zjistit JSON potřebný k nasazení prostředku.

Najít šablonu

  1. Otevření šablon Azure Pro rychlý start

  2. Vyberte dlaždici s názvem Nasazení základní linuxové webové aplikace. Pokud máte potíže s jeho nalezením, tady je přímý odkaz.

  3. Vyberte Procházet na GitHubu.

  4. Vyberte azuredeploy.json.

  5. Zkontrolujte šablonu. Vyhledejte Microsoft.Web/sites prostředek.

    Resource Manager šablony – rychlý start

Revize existující šablony

Sloučit šablonu rychlého startu s existující šablonou:

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

Název webové aplikace musí být v rámci Azure jedinečný. Aby nedocházelo k duplicitním názvům webAppPortalName , aktualizuje se proměnná z na "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]""webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Na konec definice přidejte čárku Microsoft.Web/serverfarms , která oddělí definici Microsoft.Web/sites prostředku od definice.

V tomto novém prostředku je potřeba si všimnout několika důležitých funkcí.

Má element s názvem dependsOn , který je nastavený na plán služby App Service. Toto nastavení je povinné, protože plán služby App Service musí existovat před vytvořením webové aplikace. Element dependsOn Resource Manager říká, jak uspořádat prostředky pro nasazení.

Vlastnost serverFarmId používá funkci resourceId . Tato funkce získá jedinečný identifikátor prostředku. V tomto případě získá jedinečný identifikátor plánu služby App Service. Webová aplikace je přidružená k jednomu konkrétnímu plánu služby App Service.

Nasazení šablony

K nasazení šablony použijte Azure CLI nebo Azure PowerShell.

Pokud jste skupinu prostředků nevytvořili, přečtěte si téma Vytvoření skupiny prostředků. Příklad předpokládá, že jste nastavili proměnnou templateFile na cestu k souboru šablony, jak je znázorněno v prvním kurzu.

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

Poznámka

Pokud nasazení selže, použijte verbose přepínač k získání informací o prostředcích, které vytváříte. debug Pomocí přepínače získáte další informace pro ladění.

Vyčištění prostředků

Pokud přecházíte k dalšímu kurzu, nemusíte skupinu prostředků odstraňovat.

Pokud teď zastavujete, možná budete chtít skupinu prostředků odstranit.

  1. V Azure Portal v nabídce vlevo vyberte Skupiny prostředků.
  2. Do textového pole Filtr pro libovolné pole... zadejte název skupiny prostředků.
  3. Zaškrtněte políčko vedle myResourceGroup a vyberte myResourceGroup nebo název vaší skupiny prostředků.
  4. V horní nabídce vyberte Odstranit skupinu prostředků .

Další kroky

Naučili jste se používat šablonu rychlého startu pro vývoj šablony. V dalším kurzu přidáte k prostředkům značky.