Samouczek: wdrażanie lokalnego szablonu usługi ARM
Dowiedz się, jak wdrożyć szablon usługi Azure Resource Manager (szablon usługi ARM) z komputera lokalnego. Ukończenie tego procesu trwa około 8 minut .
Ten samouczek jest pierwszą z serii. Podczas przechodzenia przez serię można modularyzować szablon przez utworzenie połączonego szablonu, przechowywanie połączonego szablonu na koncie magazynu, zabezpieczanie połączonego szablonu przy użyciu tokenu SAS i dowiedz się, jak utworzyć potok DevOps w celu wdrożenia szablonów. Ta seria koncentruje się na wdrażaniu szablonów. Jeśli chcesz dowiedzieć się, jak opracowywać szablony, zobacz samouczki dla początkujących.
Pobieranie narzędzi
Upewnij się, że masz narzędzia potrzebne do wdrażania szablonów.
Wdrażanie wiersza polecenia
Aby wdrożyć szablon, potrzebujesz programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać instrukcje dotyczące 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 programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure zaloguj 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ć lub edytować szablony, potrzebny jest dobry edytor JSON. Zalecamy używanie programu 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 programu 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, zobacz Samouczek szybki start dotyczący szablonów. Jednak nie musisz tworzyć szablonu, aby ukończyć ten samouczek.
{
"$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 tego samouczka.
Logowanie się do platformy Azure
Aby rozpocząć pracę z programem 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]
Utwórz grupę zasobów
Podczas wdrażania szablonu należy określić grupę zasobów dla zasobów. Przed uruchomieniem polecenia wdrożenia utwórz grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure lub usługi Azure PowerShell. Aby wybrać między programem Azure PowerShell i interfejsem wiersza polecenia platformy Azure, wybierz karty w poniższej sekcji kodu. Przykłady interfejsu wiersza polecenia w tym artykule są napisane dla 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 programu Azure PowerShell, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM i programu Azure PowerShell.
Czyszczenie zasobów
Aby wyczyścić wdrożone zasoby, usuń grupę zasobów.
- W witrynie 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 podzielisz szablon na szablon główny i połączony szablon. Dowiesz się również, jak przechowywać i zabezpieczać połączony szablon.