Sdílet prostřednictvím


Kurz: Nasazení místní šablony ARM

Zjistěte, jak nasadit šablonu Azure Resource Manageru (š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žením propojené šablony do účtu úložiště, zabezpečením propojené šablony pomocí tokenu SAS a zjistěte, jak 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ů

Ujistěte se, ž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 první instalaci Azure PowerShellu nebo Azure CLI se 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 zkontrolovat nebo upravit šablony, potřebujete dobrý editor JSON. Doporučujeme použít 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 pomocí editoru 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, prohlédni si kurz šablon pro rychlý start. K dokončení tohoto kurzu ale nemusíte vytvářet šablonu.

{
  "$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 jedinečnou hodnotou Řetězce 13 znaků.

Uložte kopii šablony do místního počítače s rozšířením .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 PowerShellem nebo Azure CLI pro nasazení šablony, přihlaste se pomocí 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 předplatném:

Set-AzContext [SubscriptionID/SubscriptionName]

Vytvořit skupinu zdrojů

Při nasazení šablony zadáte skupinu prostředků pro 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. Pokud si chcete vybrat mezi Azure PowerShellem a Azure CLI, vyberte karty v následující části kódu. 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 PowerShellu najdete v tématu Nasazení prostředků pomocí šablon ARM a Azure PowerShellu.

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

Pokud chcete vyčistit prostředky, které jste nasadili, odstraňte skupinu prostředků.

  1. Na portálu Azure Portal vyberte v nabídce nalevo 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 nabídce nahoře 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. Naučíte se také ukládat a zabezpečit propojenou šablonu.