Öğretici: Azure Hızlı Başlangıç Şablonlarını kullanma
Azure Hızlı Başlangıç Şablonları , topluluk tarafından sağlanan şablonların bir deposudur. Şablon geliştirmenizde örnek şablonları kullanabilirsiniz. Bu öğreticide bir web sitesi kaynak tanımı bulur ve bunu kendi şablonunuza eklersiniz. Bu yönergenin tamamlanması 12 dakika sürer.
Önkoşullar
Dışarı aktarılan şablonlarla ilgili öğreticiyi tamamlamanızı öneririz, ancak gerekli değildir.
Resource Manager Araçları uzantısıyla ve Azure PowerShell veya Azure Command-Line Arabirimi (CLI) ile Visual Studio Code sahip olmanız gerekir. Daha fazla bilgi için bkz. şablon araçları.
Şablonu gözden geçirme
Önceki öğreticinin sonunda şablonunuz aşağıdaki JSON dosyasına sahipti:
{
"$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]"
}
}
}
Bu şablon depolama hesaplarını ve app service planlarını dağıtmak için çalışır, ancak buna bir web sitesi eklemek isteyebilirsiniz. Bir kaynağı dağıtmak için gereken JSON'ı hızla bulmak için önceden oluşturulmuş şablonları kullanabilirsiniz.
Şablon bulma
Temel bir Linux web uygulaması dağıtma başlığına sahip kutucuğu seçin. Bulma konusunda sorun yaşıyorsanız doğrudan bağlantı aşağıdadır.
GitHub'da Gözat'ı seçin.
azuredeploy.json dosyasını seçin.
Şablonu gözden geçirin. Kaynağı arayın
Microsoft.Web/sites
.
Var olan şablonu düzelt
Hızlı başlangıç şablonunu mevcut şablonla birleştirin:
{
"$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]"
}
}
}
Web uygulaması adının Azure genelinde benzersiz olması gerekir. Yinelenen adlara webAppPortalName
sahip olmayı önlemek için değişkeni ile "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]"
"webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
güncelleştirilir.
Kaynak tanımını tanımdan Microsoft.Web/sites
ayırmak için tanımın sonuna Microsoft.Web/serverfarms
bir virgül ekleyin.
Bu yeni kaynakta dikkat edilmesi gereken birkaç önemli özellik vardır.
App Service planına ayarlanmış adlı dependsOn
bir öğesi vardır. Web uygulaması oluşturulmadan önce app service planının mevcut olması gerektiğinden bu ayar gereklidir.
dependsOn
öğesi Resource Manager dağıtım için kaynakların nasıl sıralanması gerektiğini bildirir.
özelliği resourceIdserverFarmId
işlevini kullanır. Bu işlev bir kaynağın benzersiz tanımlayıcısını alır. Bu durumda, app service planının benzersiz tanımlayıcısını alır. Web uygulaması belirli bir app service planıyla ilişkilendirilir.
Şablon dağıtma
Şablon dağıtmak için Azure CLI veya Azure PowerShell kullanın.
Kaynak grubunu oluşturmadıysanız bkz. Kaynak grubu oluşturma. Örnekte, ilk öğreticide gösterildiği gibi templateFile değişkenini şablon dosyasının yoluna ayarladığınız varsayılır.
New-AzResourceGroupDeployment `
-Name addwebapp `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS `
-webAppName demoapp
Not
Dağıtım başarısız olursa, oluşturduğunuz kaynaklar hakkında bilgi almak için anahtarını kullanın verbose
.
debug
Hata ayıklama için daha fazla bilgi edinmek için anahtarını kullanın.
Kaynakları temizleme
Sonraki öğreticiye geçiyorsanız kaynak grubunu silmeniz gerekmez.
Şimdi durduruyorsanız kaynak grubunu silmek isteyebilirsiniz.
- Azure portal soldaki menüden Kaynak grupları'nı seçin.
- Herhangi bir alan için filtre uygula... metin alanına kaynak grubu adını yazın.
- myResourceGroup'un yanındaki kutuyu işaretleyin ve myResourceGroup veya kaynak grubu adınızı seçin.
- Üstteki menüden Kaynak grubunu sil'i seçin.
Sonraki adımlar
Şablon geliştirmeniz için hızlı başlangıç şablonunu kullanmayı öğrendiniz. Sonraki öğreticide kaynaklara etiketler ekleyebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin