Oefenen: Azure Resource Manager-tags en parameterbestanden gebruiken

Voltooid

In deze oefening voegt u tags toe om uw Microsoft Azure-resources te organiseren en bij te houden. U kunt ook een ARM-sjabloonparameterbestand (Azure Resource Manager) gebruiken om verschillende parameterconfiguraties voor elke implementatie toe te staan.

De oefening gebruikt de Azure Resource Manager Tools for Visual Studio Code. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.

Een tag maken om de implementatie-omgeving voor resources en het project bij te houden

U maakt eerst een parameter voor gebruik als een resource-tag in uw sjabloon.

  1. Plaats in Visual Studio Code in het bestand azuredeploy.json de cursor na de accolade sluiten voor de storageSKU parameter. Voeg een komma toe en druk op Enter.

  2. Typ par. U ziet een lijst met verwante fragmenten.

  3. Selecteer arm-param. Onthoud, hiermee voegt u een generieke parameter toe aan de sjabloon. Deze code ziet er als volgt uit:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Wijzig parameter1 in resourceTags en wijzig de waarde van "type": in object. Onthoud dat parameters voor tekenreeksen, secureString, int, bool, object, secureObject en matrixgegevenstypes kunnen bevatten. Een koppeling naar voorbeeldsyntaxis van deze parametertypen bevindt zich in de samenvatting van deze module.

  5. Voeg een kenmerk met de naam defaultValue toe en stel de waarde in op {"Environment": "Dev", "Project": "Tutorial"}.

    Het parameterblok moet er als de volgende code uitzien:

    "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. Gebruik deze parameter om uw opslagaccount-resource te taggen. Wijzig het kenmerk tags: in de resourcedefinitie:

    "tags": "[parameters('resourceTags')]",
    
  7. Uw bestand ziet er als volgt uit:

    {
        "$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. Sla het bestand op.

Implementeer de ARM-sjabloon met bijgewerkte tags

  • De bijgewerkte ARM-sjabloon implementeren in Azure. Zorg ervoor dat u dezelfde storagePrefix gebruikt die u eerder hebt gebruikt.

    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
    
  • De bijgewerkte ARM-sjabloon implementeren in Azure. Zorg ervoor dat u dezelfde storagePrefix gebruikt die u eerder hebt gebruikt.

    $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
    

Controleren of de nieuwe tags zich in de implementatie bevinden

  1. Selecteer in Azure de resourcegroep [naam sandbox-resourcegroep] en selecteer vervolgens het opslagaccount dat u hebt geïmplementeerd.

  2. Let op de omgeving: Dev en Project: Zelfstudietags :

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

Een parameterbestand gebruiken

Er zijn momenteel drie parameters die u elke keer dat u deze sjabloon implementeert moet invullen. Elke gebruiker van de sjabloon kan een bestand maken waarin de parameterwaarden worden bewaard. Hier maakt u een parameterbestand om met uw sjabloon te gebruiken.

  1. Maak in Visual Studio code een ander bestand. Geef dit bestand de naam azuredeploy.parameters.dev.json.

  2. In dit bestand plaatst u de waarden voor de sjabloonparameters die u wilt invoeren in de sjabloon voor de ontwikkelomgeving. Wijzig een tagwaarde om te zien dat de implementatie een wijziging aanbrengt. U kunt projectName bijvoorbeeld wijzigen in 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. Zorg ervoor dat u {unique-prefix} vervangt door uw unieke voorvoegsel.

  4. Sla het bestand op.

De sjabloon implementeren met het parameterbestand

In deze sectie implementeert u de ARM-sjabloon die aangeeft welk parameterbestand moet worden gebruikt.

  1. Voer de volgende Azure CLI-opdrachten uit in de Visual Studio Code-terminal:

    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. Controleer of de implementatie is gelukt en of de waarde van de tag is gewijzigd:

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

  3. Maak als uitdaging een parameterbestand voor de productieomgeving. Wijzig het pad naar het parameterbestand wanneer u de opdracht uitvoert om de productieomgeving te implementeren.

  1. Voer deze Azure PowerShell-opdrachten uit in de Visual Studio Code-terminal:

    $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. Controleer of de implementatie is gelukt en of de waarde van de tag is gewijzigd:

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

  3. Maak als uitdaging een parameterbestand voor de productieomgeving. Wijzig het pad naar het parameterbestand wanneer u de opdracht uitvoert om de productieomgeving te implementeren.