AzureFeatured

Part 8 – Arm Template – Tags

Create tags

We use tags to identify our resources. For example, add tags for Environment like ‘Dev’, ‘Project’..etc.

It will help you find costs for specific project for resource being used.

This below JSON templates shows the new tags being assigned to resources;

{
 "$schema": "https://schema.management.azure.com/schemas/2015-01-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": "2019-04-01",
     "name": "[variables('uniqueStorageName')]",
     "location": "[parameters('location')]",
     "tags": "[parameters('resourceTags')]",
     "sku": {
       "name": "[parameters('storageSKU')]"
     },
     "kind": "StorageV2",
     "properties": {
       "supportsHttpsTrafficOnly": true
     }
   },
   {
     "type": "Microsoft.Web/serverfarms",
     "apiVersion": "2016-09-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": "2016-08-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]"
   }
 }
}

Deploy template

New-AzResourceGroupDeployment `
  -Name addtags `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS `
  -webAppName demoapp

Verify deployment

You can verify the deployment by exploring the resource group from the Azure portal.

  1. Sign in to the Azure portal.
  2. From the left menu, select Resource groups.
  3. Select the resource group you deployed to.
  4. Select one of the resources, such as the storage account resource. You see that it now has tags.Show tags
Show More

Related Articles

Back to top button