Samouczek: wdrażanie lokalnego szablonu usługi ARM
Dowiedz się, jak wdrożyć szablon usługi Azure Resource Manager (szablon ARM) z komputera lokalnego. Ukończenie tego procesu trwa około 8 minut .
Ten samouczek jest pierwszą z serii. Podczas przechodzenia przez serię modułyzujesz szablon, tworząc połączony szablon, przechowujesz połączony szablon na koncie magazynu i zabezpieczasz połączony szablon przy użyciu tokenu SAS, a następnie dowiesz się, jak utworzyć potok DevOps w celu wdrożenia szablonów. Ta seria koncentruje się na wdrażaniu szablonów. Jeśli chcesz nauczyć się programowania szablonów, zobacz samouczki dla początkujących.
Pobieranie narzędzi
Zacznijmy od upewnienia się, że masz narzędzia potrzebne do wdrażania szablonów.
Wdrażanie wiersza polecenia
Aby wdrożyć szablon, potrzebujesz Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać instrukcje instalacji, zobacz:
- Instalowanie programu Azure PowerShell
- Instalowanie interfejsu wiersza polecenia platformy Azure w systemie Windows
- Instalowanie interfejsu wiersza polecenia platformy Azure w systemie Linux
- Instalowanie interfejsu wiersza polecenia platformy Azure w systemie macOS
Po zainstalowaniu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure upewnij się, że logujesz się po raz pierwszy. Aby uzyskać pomoc, zobacz Logowanie — PowerShell lub Logowanie — interfejs wiersza polecenia platformy Azure.
Edytor (opcjonalnie)
Szablony to pliki JSON. Aby przejrzeć/edytować szablony, potrzebny jest dobry edytor JSON. Zalecamy Visual Studio Code z rozszerzeniem Resource Manager Tools. Jeśli musisz zainstalować te narzędzia, zobacz Szybki start: tworzenie szablonów usługi ARM przy użyciu Visual Studio Code.
Przeglądanie szablonu
Szablon wdraża konto magazynu, plan usługi App Service i aplikację internetową. Jeśli interesuje Cię tworzenie szablonu, możesz zapoznać się z samouczkiem dotyczącym szablonów szybkiego startu. Jednak nie jest to wymagane do ukończenia tego samouczka.
{
"$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]"
}
}
}
Ważne
Nazwy kont magazynu muszą być unikatowe, od 3 do 24 znaków, a tylko cyfry i małe litery. Zmienna storageAccountName
przykładowego szablonu łączy projectName
maksymalnie 11 znaków parametru z unikatową wartością 13 znaków.
Zapisz kopię szablonu na komputerze lokalnym przy użyciu rozszerzenia json , na przykład azuredeploy.json. Ten szablon zostanie wdrożony w dalszej części samouczka.
Logowanie do platformy Azure
Aby rozpocząć pracę z Azure PowerShell/interfejsem wiersza polecenia platformy Azure w celu wdrożenia szablonu, zaloguj się przy użyciu poświadczeń platformy Azure.
Connect-AzAccount
Jeśli masz wiele subskrypcji platformy Azure, wybierz subskrypcję, której chcesz użyć. Zastąp [SubscriptionID/SubscriptionName]
nawiasy kwadratowe []
informacjami o subskrypcji:
Set-AzContext [SubscriptionID/SubscriptionName]
Tworzenie grupy zasobów
Podczas wdrażania szablonu należy określić grupę zasobów, która będzie zawierać zasoby. Przed uruchomieniem polecenia wdrożenia utwórz grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure lub usługi Azure PowerShell. Wybierz karty w poniższej sekcji kodu, aby wybrać między Azure PowerShell a interfejsem wiersza polecenia platformy Azure. Przykłady interfejsu wiersza polecenia w tym artykule są napisane dla powłoki powłoki 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"
Wdrażanie szablonu
Użyj jednej lub obu opcji wdrażania, aby wdrożyć szablon.
$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
Aby dowiedzieć się więcej na temat wdrażania szablonu przy użyciu Azure PowerShell, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM i Azure PowerShell.
Czyszczenie zasobów
Wyczyść wdrożone zasoby, usuwając grupę zasobów.
- W Azure Portal wybierz pozycję Grupa zasobów z menu po lewej stronie.
- Wprowadź nazwę grupy zasobów w polu Filtruj według nazwy.
- Wybierz nazwę grupy zasobów.
- Wybierz pozycję Usuń grupę zasobów z górnego menu.
Następne kroki
Przedstawiono sposób wdrażania szablonu lokalnego. W następnym samouczku oddzielisz szablon od głównego szablonu i połączonego szablonu oraz dowiesz się, jak przechowywać i zabezpieczać połączony szablon.