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á přibližně 8 minut .

Tento kurz je první z řady. V průběhu série modularizujete šablonu vytvořením propojené šablony, uložíte propojenou šablonu do účtu úložiště a zabezpečíte 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 vyvíjet šablony, projděte si kurzy pro začátečníky.

Získat nástroje

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

Nasazení příkazového řádku

K nasazení šablony potřebujete 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. Ke kontrole a úpravám šablon potřebujete dobrý editor JSON. Doporučujeme Visual Studio Code s rozšířením Resource Manager Tools. Pokud potřebujete tyto nástroje nainstalovat, přečtěte si rychlý start: Vytváření šablon ARM pomocí editoru Visual Studio Code.

Zkontrolovat šablonu

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

Důležité

Názvy účtů úložiště musí být jedinečné, musí mít délku 3 až 24 znaků a používat jenom číslice a malá písmena. Proměnná ukázkové šablony storageAccountName kombinuje projectName maximálně 11 znaků parametru s hodnotou 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 pracovat s Azure PowerShell/Azure CLI na 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] a hranaté závorky [] informacemi o 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. Vyberte karty v následující části kódu a zvolte 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 nasazené prostředky odstraněním skupiny prostředků.

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

Dozvěděli jste se, jak nasadit místní šablonu. V dalším kurzu rozdělíte šablonu na hlavní a propojenou šablonu a naučíte se, jak propojenou šablonu uložit a zabezpečit.