Öğretici: Yerel ARM şablonu dağıtma
Yerel makinenizden Azure Resource Manager şablonu (ARM şablonu) dağıtmayı öğrenin. Tamamlanması yaklaşık 8 dakika sürer.
Bu öğretici, serinin ilk öğreticisidir. Seride ilerledikçe, bağlantılı bir şablon oluşturarak şablonu modüler hale getirmek, bağlantılı şablonu bir depolama hesabında depolamak ve SAS belirteci kullanarak bağlantılı şablonun güvenliğini sağlamak ve şablonları dağıtmak için DevOps işlem hattı oluşturmayı öğreneceksiniz. Bu seri şablon dağıtımına odaklanır. Şablon geliştirmeyi öğrenmek istiyorsanız başlangıç öğreticilerine bakın.
Araçları alma
Şablonları dağıtmak için ihtiyacınız olan araçlara sahip olduğunuzdan emin olarak başlayalım.
Komut satırı dağıtımı
Şablonu dağıtmak için Azure PowerShell veya Azure CLI gerekir. Yükleme yönergeleri için bkz:
- Azure PowerShell’i yükleme
- Windows'da Azure CLI'yi yükleme
- Linux'ta Azure CLI'yi yükleme
- macOS’ta Azure CLI'yi yükleme
Azure PowerShell veya Azure CLI'yı yükledikten sonra ilk kez oturum açtığınızdan emin olun. Yardım için bkz . Oturum açma - PowerShell veya Oturum açma - Azure CLI.
Düzenleyici (İsteğe bağlı)
Şablonlar JSON dosyalarıdır. Şablonları gözden geçirmek/düzenlemek için iyi bir JSON düzenleyicisine ihtiyacınız vardır. Resource Manager Araçları uzantısıyla Visual Studio Code öneririz. Bu araçları yüklemeniz gerekiyorsa bkz. Hızlı Başlangıç: Visual Studio Code ile ARM şablonları oluşturma.
Şablonu gözden geçirme
Şablon bir depolama hesabı, app service planı ve web uygulaması dağıtır. Şablonu oluşturmak istiyorsanız Hızlı Başlangıç şablonları hakkındaki öğreticiyi gözden geçirebilirsiniz. Ancak bu öğreticiyi tamamlamak için gerekli değildir.
{
"$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]"
}
}
}
Önemli
Depolama hesabı adları benzersiz olmalı, 3 ila 24 karakter uzunluğunda olmalı ve yalnızca sayı ve küçük harf kullanmalıdır. Örnek şablonun storageAccountName
değişkeni, parametrenin projectName
en fazla 11 karakterlik değerini 13 karakterlik benzersiz birString değeriyle birleştirir.
Şablonun bir kopyasını .json uzantısıyla (örneğin, azuredeploy.json) yerel bilgisayarınıza kaydedin. Bu şablonu öğreticinin ilerleyen bölümlerinde dağıtacaksınız.
Azure'da oturum açma
Şablon dağıtmak üzere Azure PowerShell/Azure CLI ile çalışmaya başlamak için Azure kimlik bilgilerinizle oturum açın.
Connect-AzAccount
Birden çok Azure aboneliğiniz varsa, kullanmak istediğiniz aboneliği seçin. ve köşeli ayraçları []
abonelik bilgilerinizle değiştirin[SubscriptionID/SubscriptionName]
:
Set-AzContext [SubscriptionID/SubscriptionName]
Kaynak grubu oluşturma
Bir şablon dağıttığınızda, kaynakları içerecek bir kaynak grubu belirtirsiniz. Dağıtım komutunu çalıştırmadan önce Azure CLI veya Azure PowerShell ile kaynak grubunu oluşturun. Azure PowerShell ile Azure CLI arasında seçim yapmak için aşağıdaki kod bölümünde yer alan sekmeleri seçin. Bu makaledeki CLI örnekleri Bash kabuğu için yazılmıştır.
$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"
Şablon dağıtma
Şablonu dağıtmak için bir veya her iki dağıtım seçeneğini kullanın.
$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
Azure PowerShell kullanarak şablon dağıtma hakkında daha fazla bilgi edinmek için bkz. ARM şablonları ve Azure PowerShell ile kaynakları dağıtma.
Kaynakları temizleme
Kaynak grubunu silerek dağıtmış olduğunuz kaynakları temizleyin.
- Azure portal soldaki menüden Kaynak grubu'na tıklayın.
- Ada göre filtrele alanına kaynak grubu adını girin.
- Kaynak grubu adını seçin.
- Üstteki menüden Kaynak grubunu sil'i seçin.
Sonraki adımlar
Yerel şablon dağıtmayı öğrendin. Sonraki öğreticide, şablonu bir ana şablonla bağlantılı şablona ayıracak ve bağlantılı şablonu depolamayı ve güvenli hale getireceğinizi öğreneceksiniz.