Övning – Använda Azure Resource Manager-taggar och parameterfiler

Slutförd

I den här övningen lägger du till taggar som gör det enklare att ordna och spåra dina Microsoft Azure-resurser. Du använder också en ARM-mallparameterfil (Azure Resource Manager) så att olika parameterkonfigurationer kan användas för varje distribution.

I den här övningen använder vi Azure Resource Manager Tools for Visual Studio Code. Installera tillägget i Visual Studio Code.

Skapa en tagg för att spåra miljön och projektet för resursdistributionen

Först skapar du en parameter som ska användas som en resurstagg i mallen.

  1. Placera markören efter den avslutande klammerparentesen storageSKU för parametern i filen azuredeploy.json i Visual Studio Code. Lägg till ett kommatecken och tryck på Retur.

  2. Skriv par. En lista över relaterade kodfragment visas.

  3. Välj arm-param. Nu läggs en generisk parameter till i mallen. Det ser ut som den här koden:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Ändra parameter1 till resourceTags och ändra värdet för "type": till object. Kom ihåg att parametrar kan ha string-, secureString-, int-, bool-, object-, secureObject- och matrisdatatyper. En länk till exempelsyntax för dessa parametertyper finns i sammanfattningen av den här modulen.

  5. Lägg till ett attribut med namnet defaultValue: och ange värdet till {"Environment": "Dev", "Project": "Tutorial"}.

    Parameterblocket bör se ut så här:

    "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"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Använd den här parametern för att tagga lagringskontoresursen. Ändra attributet tags: i resursdefinitionen:

    "tags": "[parameters('resourceTags')]",
    
  7. Filen bör se ut så här:

    {
        "$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"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Spara filen.

Distribuera ARM-mallen med uppdaterade taggar

  • Distribuera den uppdaterade ARM-mallen till Azure. Använd samma storagePrefix som du använde tidigare.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Distribuera den uppdaterade ARM-mallen till Azure. Använd samma storagePrefix som du använde tidigare.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="updateTags-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your storagePrefix} `
      -storageSKU Standard_LRS
    

Kontrollera att de nya taggarna finns i distributionen

  1. I Azure väljer du resursgruppen [resursgruppsnamn för sandbox-miljö] och väljer sedan det lagringskonto som du distribuerade.

  2. Observera taggarna Miljö : Dev och Project : Självstudie :

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Använda en parameterfil

För närvarande finns det tre parametrar som du kan fylla i varje gång du distribuerar den här mallen. Varje användare av mallen kan skapa en fil med sina egna parametervärden. Här skapar du en parameterfil som ska användas med din mall.

  1. Skapa en till fil i Visual Studio Code. Ge den namnet azuredeploy.parameters.dev.json.

  2. I den här filen lägger du till värdena för de mallparametrar som du vill använda i mallen för utvecklingsmiljön. Kontrollera att distributionen gör en ändring genom att ändra ett taggvärde. Du kan till exempel ändra projectName till Learn.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. Ersätt {unique-prefix} med ditt unika prefix.

  4. Spara filen.

Distribuera mallen med parameterfilen

I det här avsnittet ska du distribuera ARM-mallen och ange vilken parameterfil som ska användas.

  1. Kör följande Azure CLI-kommandon i Visual Studio Code-terminalen:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Kontrollera att distributionen lyckades och att taggvärdet ändrades:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Som en övning kan du skapa en parameterfil för produktionsmiljön. Ändra parameterfilens sökväg när du kör kommandot för att distribuera till produktionsmiljön.

  1. Kör följande Azure PowerShell-kommandon i Visual Studio Code-terminalen:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Kontrollera att distributionen lyckades och att taggvärdet ändrades:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Som en övning kan du skapa en parameterfil för produktionsmiljön. Ändra parameterfilens sökväg när du kör kommandot för att distribuera till produktionsmiljön.