Kurz: Nasazení místní šablony ARM

Zjistěte, jak nasadit Azure Resource Manager šablony (šablony ARM) z místního počítače. Dokončení trvá přibližně 8 minut.

Tento kurz je první z řady. V průběhu série budete šablonu modularizovat vytvořením propojené šablony, propojenou šablonu uložíte do účtu úložiště a propojenou šablonu zabezpečíte pomocí tokenu SAS a naučíte se vytvořit kanál DevOps pro nasazení šablon. Tato série se zaměřuje na nasazení šablon. Pokud se chcete se seznamovat s vývojem šablon, podívejte se na kurzy pro začátečníky.

Získání nástrojů

Zaněme tím, že se ujisme, že máte nástroje potřebné k nasazení šablon.

Nasazení z příkazového řádku

K nasazení šablony Azure PowerShell azure CLI. Pokyny k instalaci najdete v těchto pokynech:

Po instalaci Azure PowerShell nebo Azure CLI se poprvé přihlaste. Nápovědu najdete v tématu Přihlášení – PowerShell nebo Přihlášení – Azure CLI.

Editor (volitelné)

Šablony jsou soubory JSON. Pokud chcete šablony zkontrolovat nebo upravit, potřebujete dobrý editor JSON. Doporučujeme Visual Studio Code s rozšířením Resource Manager Tools. Pokud potřebujete tyto nástroje nainstalovat, projděte si rychlý start: Vytváření šablon ARM pomocí Visual Studio Code.

Kontrola šablony

Šablona nasadí účet úložiště, plán služby App Service a webovou aplikaci. Pokud vás zajímá vytvoření šablony, můžete si projít kurz týkající se šablon pro rychlý start. K dokončení tohoto kurzu to ale není potřeba.

{
  "$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": "[concat(parameters('projectName'), uniqueString(resourceGroup().id))]",
    "webAppName": "[concat(parameters('projectName'), 'WebApp')]",
    "appServicePlanName": "[concat(parameters('projectName'), 'Plan')]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2020-12-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": "2020-12-01",
      "name": "[variables('webAppName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
      ],
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('storageAccountName')).primaryEndpoints]"
    }
  }
}

Důležité

Storage musí být jedinečné, musí mít délku 3 až 24 znaků a musí obsahovat jenom číslice a malá písmena. Proměnná ukázkové šablony kombinuje maximálně 11 znaků parametru s hodnotou storageAccountName projectName uniqueString 13 znaků.

Uložte kopii šablony do místního počítače s příponou .json, například azuredeploy.json. Tuto šablonu nasadíte později v tomto kurzu.

Přihlášení k Azure

Pokud chcete začít s Azure PowerShell/Azure CLI a nasadit šablonu, přihlaste se pomocí svých přihlašovacích údajů Azure.

Connect-AzAccount

Pokud máte více předplatných Azure, vyberte předplatné, které chcete použít. Nahraďte [SubscriptionID/SubscriptionName] a hranatými závorkami [] informacemi o vašem předplatném:

Set-AzContext [SubscriptionID/SubscriptionName]

Vytvoření skupiny prostředků

Při nasazování šablony zadáte skupinu prostředků, která bude tyto prostředky obsahovat. Před spuštěním příkazu k nasazení vytvořte skupinu prostředků. Použijte k tomu Azure CLI nebo Azure PowerShell. Vyberte karty v následující části kódu a zvolte si mezi Azure PowerShell a Azure CLI. Příklady rozhraní příkazového řádku v tomto článku jsou napsané pro prostředí Bash.

$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"

Nasazení šablony

K nasazení šablony použijte jednu nebo obě možnosti nasazení.

$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

Další informace o nasazení šablony pomocí Azure PowerShell najdete v tématu Nasazení prostředků pomocí šablon ARM a Azure PowerShell.

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

Odstraněním skupiny prostředků vyčistěte prostředky, které jste nasadili.

  1. V Azure Portal nabídce vyberte Skupina prostředků.
  2. Do pole Filtrovat podle názvu zadejte název skupiny prostředků.
  3. Vyberte název skupiny prostředků.
  4. V horní nabídce vyberte Odstranit skupinu prostředků.

Další kroky

Naučili jste se, jak nasadit místní šablonu. V dalším kurzu šablonu oddělíte do hlavní šablony a propojené šablony a naučíte se, jak propojenou šablonu uložit a zabezpečit.