Udostępnij przez


Samouczek: korzystanie z szablonów szybkiego startu platformy Azure

Szybki start z szablonami Azure to repozytorium szablonów stworzonych przez społeczność. Przykładowe szablony można używać podczas opracowywania szablonów. W tym samouczku znajdziesz definicję zasobu witryny internetowej i dodasz ją do własnego szablonu. Wykonanie tej instrukcji trwa 12 minut .

Wymagania wstępne

Zalecamy ukończenie samouczka dotyczącego wyeksportowanych szablonów, ale nie jest to wymagane.

Musisz mieć program Visual Studio Code i program Azure PowerShell lub interfejs wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz narzędzia szablonów.

Przeglądanie szablonu

Na końcu poprzedniego samouczka szablon miał następujący plik 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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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]"
    }
  }
}

Ten szablon działa na potrzeby wdrażania kont magazynu i planów usługi App Service, ale warto dodać do niego witrynę internetową. Za pomocą wstępnie utworzonych szablonów można szybko odnaleźć kod JSON wymagany do wdrożenia zasobu.

Znajdź szablon

  1. Otwieranie szablonów szybkiego startu platformy Azure

  2. Wybierz kafelek z tytułem Wdróż podstawową aplikację internetową systemu Linux. Jeśli masz problem ze znalezieniem go, oto bezpośredni link.

  3. Wybierz Przeglądaj na GitHub.

  4. Wybierz azuredeploy.json.

  5. Przejrzyj szablon. Microsoft.Web/sites Wyszukaj zasób.

    Szybki start witryny szablonu Azure Resource Manager

Poprawianie istniejącego szablonu

Połącz szablon szybkiego uruchomienia z istniejącym szablonem:

{
  "$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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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": "2025-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]"
    }
  }
}

Nazwa aplikacji internetowej musi być unikatowa na platformie Azure. Aby zapobiec występowaniu zduplikowanych nazw, zmienna webAppPortalName jest aktualizowana z "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" do "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Dodaj przecinek na końcu Microsoft.Web/serverfarms definicji, aby oddzielić definicję zasobu od Microsoft.Web/sites definicji.

W tym nowym zasobie należy pamiętać o kilku ważnych funkcjach.

Ma on element o nazwie dependsOn, który jest ustawiony na plan usługi App Service. To ustawienie jest wymagane, ponieważ plan usługi App Service musi istnieć przed utworzeniem aplikacji internetowej. Element dependsOn informuje Resource Manager, jak uporządkować zasoby do wdrożenia.

Właściwość serverFarmId używa funkcji resourceId . Ta funkcja pobiera unikatowy identyfikator zasobu. W takim przypadku pobiera unikatowy identyfikator planu App Service. Aplikacja internetowa jest skojarzona z jednym określonym planem usługi App Service.

Wdrażanie szablonu

Wdrażanie szablonu przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Jeśli grupa zasobów nie została utworzona, zobacz Tworzenie grupy zasobów. W przykładzie przyjęto założenie, że zmienna templateFile została ustawiona na ścieżkę do pliku szablonu, jak pokazano w pierwszym samouczku.

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

Uwaga / Notatka

Jeśli wdrożenie zakończy się niepowodzeniem, użyj przełącznika verbose , aby uzyskać informacje o tworzonych zasobach. Użyj przełącznika debug , aby uzyskać więcej informacji na temat debugowania.

Uprzątnij zasoby

Jeśli przejdziesz do następnego samouczka, nie musisz usuwać grupy zasobów.

Jeśli teraz zatrzymasz się, możesz usunąć grupę zasobów.

  1. W witrynie Azure Portal wybierz pozycję Grupy zasobów z menu po lewej stronie.
  2. Wpisz nazwę grupy zasobów w polu tekstowym Filtruj dla dowolnego pola ...
  3. Zaznacz pole wyboru obok pozycji myResourceGroup i wybierz pozycję myResourceGroup lub nazwę grupy zasobów.
  4. Wybierz pozycję Usuń grupę zasobów z górnego menu.

Dalsze kroki

Wiesz już, jak używać szablonu szybkiego startu do tworzenia szablonu. W następnym samouczku dodasz tagi do zasobów.