Öğretici: ARM şablonunuza etiket ekleme
Bu öğreticide, Azure Resource Manager şablonunuzdaki (ARM şablonu) kaynaklara etiket eklemeyi öğreneceksiniz. Etiketler , kaynakları belirlemenize ve maliyet raporlarında görünmenize yardımcı olan anahtar-değer çiftlerinden oluşan meta veri öğeleridir. Bu yönergenin tamamlanması 8 dakika sürer.
Önkoşullar
Hızlı Başlangıç Şablonları hakkındaki öğreticiyi tamamlamanızı öneririz, ancak gerekli değildir.
Resource Manager Araçları uzantısı 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 şablonunuz bir depolama hesabı, bir App Service planı ve bir web uygulaması dağıttı.
{
"$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]"
}
}
}
Bu kaynakları dağıttığınızda maliyetleri izlemeniz ve bir kategoriye ait kaynakları bulmanız gerekebilir. Bu sorunları çözmeye yardımcı olmak için etiketler ekleyebilirsiniz.
Etiket ekleme
Kaynakların kullanım amacını daha kolay belirlemek için değerler ekleyebilirsiniz. Ortamı ve projeyi listeleyen etiketler ekleyebilirsiniz. Ayrıca, bir maliyet merkezini veya kaynağın sahibi olan ekibi tanımlamak için bunları ekleyebilirsiniz. Kuruluşunuz için anlamlı olan tüm değerleri kullanabilirsiniz.
Aşağıdaki örnekte şablondaki değişiklikler vurgulanır. Dosyanın tamamını kopyalayın ve şablonunuzu içeriğiyle değiş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"
}
},
"resourceTags": {
"type": "object",
"defaultValue": {
"Environment": "Dev",
"Project": "Tutorial"
}
}
},
"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')]",
"tags": "[parameters('resourceTags')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"tags": "[parameters('resourceTags')]",
"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": [
"[parameters('appServicePlanName')]"
],
"tags": "[parameters('resourceTags')]",
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Şablon dağıtma
Şablonu dağıtmanın ve sonuçlara bakmanın zamanı geldi.
Kaynak grubunu oluşturmadıysanız bkz. Kaynak grubu oluşturma. Örnekte, değişkenini templateFile
ilk öğreticide gösterildiği gibi şablon dosyasının yoluna ayarladığınız varsayılır.
New-AzResourceGroupDeployment `
-Name addtags `
-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.
Dağıtımı doğrulama
Azure portal kaynak grubunu keşfederek dağıtımı doğrulayabilirsiniz.
Azure Portal’ında oturum açın.
Soldaki menüden Kaynak grupları'nı seçin.
Dağıtılan kaynak grubunu seçin.
Depolama hesabı kaynağı gibi kaynaklardan birini seçin. Artık etiketlere sahip olduğunu görürsünüz.
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
Bu öğreticide, kaynaklara etiketler eklersiniz. Sonraki öğreticide, değerleri şablona geçirmeyi basitleştirmek için parametre dosyalarını kullanmayı öğreneceksiniz.
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