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

Slutförd

I den här övningen lägger du till taggar för att organisera och spåra dina Microsoft Azure-resurser. Du använder också en AZURE Resource Manager-mallparameterfil (ARM) för att tillåta olika parameterkonfigurationer för varje distribution.

Den här övningen använder Azure Resource Manager Tools för Visual Studio Code. Se till att installera det här tillägget i Visual Studio Code.

Anmärkning

Den här övningen är valfri. Om du vill slutföra den här övningen måste du skapa en Azure-prenumeration innan du börjar. Om du inte har något Azure-konto eller om du inte vill skapa ett för tillfället kan du läsa igenom anvisningarna så att du förstår den information som visas.

Anmärkning

I den här lektionen använder du Azure Cloud Shell som terminal. Du kan komma åt Cloud Shell via Azure-portalen eller Cloud Shell-inloggningen. Du behöver inte installera något på din dator eller bärbara dator för att använda den.

Anmärkning

I den här övningen ersätter du myResourceGroupName i exemplen med namnet på en befintlig resursgrupp eller namnet på den resursgrupp som du skapade för den här övningen.

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

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

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

  2. Skriv par. Du ser en lista över relaterade kodfragment.

  3. Välj arm-param. Kom ihåg att den här åtgärden lägger till en allmän parameter 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 "type": för till objekt. Kom ihåg att parametrar kan ha datatyperna string, secureString, int, bool, object, secureObject och array. En länk till exempelsyntaxen 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. Se till att använda 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. Se till att använda 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 myResourceGroupName och väljer sedan det lagringskonto som du distribuerade.

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

    Skärmbild av Azure-portalen som visar de markerade taggarna på sidan Översikt över lagringskonto.

Använda en parameterfil

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

  1. Skapa en annan fil i Visual Studio Code. Kalla det azuredeploy.parameters.dev.json.

  2. I den här filen lägger du till värdena för de mallparametrar som du vill ha indata i mallen för utvecklingsmiljön. Ändra ett tagvärde för att se att distributionen ändras. 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. Se till att ersätta {unique-prefix} med ditt unika prefix.

  4. Spara filen.

Distribuera mallen med parameterfilen

I det här avsnittet distribuerar du ARM-mallen och anger 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 azure för att säkerställa att distributionen lyckades och att taggvärdet har ändrats:

    Skärmbild av Azure-portalen som visar de uppdaterade taggvärdena på översiktssidan för lagringskontot.

  3. Som en utmaning skapar du 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 azure för att säkerställa att distributionen lyckades och att taggvärdet har ändrats:

    Skärmbild av Azure-portalen som visar de uppdaterade taggvärdena på översiktssidan för lagringskontot.

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