Kurz: Nasazení místní šablony ARM

Zjistěte, jak nasadit šablonu Azure Resource Manager (šablonu ARM) z místního počítače. Dokončení trvá asi 8 minut .

Tento kurz je první ze série. Při procházení řady můžete šablonu modularizovat vytvořením propojené šablony, uložit propojenou šablonu do účtu úložiště a zabezpečit propojenou šablonu 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 naučit vývoj šablon, projděte si kurzy pro začátečníky.

Získání nástrojů

Začněme tím, že zajistíte, že máte nástroje, které potřebujete k nasazení šablon.

Nasazení příkazového řádku

K nasazení šablony potřebujete buď Azure PowerShell, nebo Azure CLI. Pokyny k instalaci najdete tady:

Po instalaci Azure PowerShell nebo Azure CLI se ujistěte, že se poprvé přihlásíte. 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 zkontrolovat nebo upravit šablony, potřebujete dobrý editor JSON. Doporučujeme Visual Studio Code s rozšířením Resource Manager Tools. Pokud potřebujete nainstalovat tyto nástroje, přečtěte si článek Rychlý start: Vytvoření šablon ARM s 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 o šablonách pro rychlý start. K dokončení tohoto kurzu se ale nevyžaduje.

{
  "$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 názvy účtů musí být jedinečné, musí mít délku 3 až 24 znaků a používat pouze číslice a malá písmena. Proměnná ukázkové šablony storageAccountName kombinuje projectName maximálně 11 znaků parametru s jedinečnou hodnotouString 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 pracovat s Azure PowerShell/ Azure CLI k nasazení šablony, 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] hranaté závorky [] informacemi o vašem předplatném:

Set-AzContext [SubscriptionID/SubscriptionName]

Vytvoření skupiny prostředků

Při nasazení šablony zadáte skupinu prostředků, která bude obsahovat prostředky. Před spuštěním příkazu k nasazení vytvořte skupinu prostředků. Použijte k tomu Azure CLI nebo Azure PowerShell. Výběrem karet v následující části kódu si můžete vybrat 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ů

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

  1. V Azure Portal vyberte v nabídce vlevo skupinu 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

Dozvěděli jste se, jak nasadit místní šablonu. V dalším kurzu oddělíte šablonu do hlavní šablony a propojené šablony a naučíte se ukládat a zabezpečit propojenou šablonu.