Aracılığıyla paylaş


Öğ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 templateFileilk öğ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.

  1. Azure Portal’ında oturum açın.

  2. Soldaki menüden Kaynak grupları'nı seçin.

  3. Dağıtılan kaynak grubunu seçin.

  4. Depolama hesabı kaynağı gibi kaynaklardan birini seçin. Artık etiketlere sahip olduğunu görürsünüz.

    Depolama hesabı kaynağındaki etiketleri gösteren Azure portal ekran görüntüsü.

Kaynakları temizleme

Sonraki öğreticiye geçiyorsanız kaynak grubunu silmeniz gerekmez.

Şimdi durduruyorsanız kaynak grubunu silmek isteyebilirsiniz.

  1. Azure portal soldaki menüden Kaynak grupları'nı seçin.
  2. Herhangi bir alan için filtre uygula... metin alanına kaynak grubu adını yazın.
  3. myResourceGroup'un yanındaki kutuyu işaretleyin ve myResourceGroup veya kaynak grubu adınızı seçin.
  4. Ü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.