Samouczek: korzystanie z szablonów szybkiego startu platformy Azure
Szablony szybkiego startu platformy Azure to repozytorium szablonów współautorów społeczności. Możesz użyć przykładowych szablonów podczas opracowywania szablonów. W tym samouczku znajdziesz definicję zasobu witryny internetowej i dodasz ją do własnego szablonu. Ukończenie tej instrukcji trwa 12 minut .
Wymagania wstępne
Zalecamy ukończenie samouczka dotyczącego wyeksportowanych szablonów, ale nie jest to wymagane.
Musisz mieć Visual Studio Code z rozszerzeniem Resource Manager Tools oraz interfejsem Azure PowerShell lub interfejsem azure Command-Line (CLI). 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": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-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 możesz dodać do niej witrynę internetową. Za pomocą wstępnie utworzonych szablonów można szybko odnaleźć kod JSON wymagany do wdrożenia zasobu.
Znajdowanie szablonu
Otwieranie szablonów szybkiego startu platformy Azure
Wybierz kafelek z tytułem Wdróż podstawową aplikację internetową systemu Linux. Jeśli masz problem ze znalezieniem go, oto bezpośredni link.
Wybierz pozycję Przeglądaj w witrynie GitHub.
Wybierz plik azuredeploy.json.
Przejrzyj szablon.
Microsoft.Web/sites
Wyszukaj zasób.
Poprawianie istniejącego szablonu
Scal szablon szybkiego startu 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": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-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": "2021-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 zamówić zasoby na potrzeby wdrożenia.
Właściwość serverFarmId
używa funkcji resourceId . Ta funkcja pobiera unikatowy identyfikator zasobu. W takim przypadku pobiera unikatowy identyfikator planu usługi App Service. Aplikacja internetowa jest skojarzona z jednym określonym planem usługi App Service.
Wdrażanie szablonu
Użyj interfejsu wiersza polecenia platformy Azure lub Azure PowerShell, aby wdrożyć szablon.
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
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.
Czyszczenie zasobów
Jeśli przejdziesz do następnego samouczka, nie musisz usuwać grupy zasobów.
Jeśli zatrzymasz się teraz, możesz usunąć grupę zasobów.
- W Azure Portal wybierz pozycję Grupy zasobów z menu po lewej stronie.
- Wpisz nazwę grupy zasobów w polu tekstowym Filtruj dla dowolnego pola...
- Zaznacz pole wyboru obok pozycji myResourceGroup i wybierz pozycję myResourceGroup lub nazwę grupy zasobów.
- Wybierz pozycję Usuń grupę zasobów z górnego menu.
Następne kroki
Wiesz już, jak używać szablonu szybkiego startu do opracowywania szablonów. W następnym samouczku dodasz tagi do zasobów.