Esercizio: Usare tag e file di parametri di Azure Resource Manager

Completato

In questo esercizio si aggiungono i tag per organizzare le risorse di Microsoft Azure e tenerne traccia. È anche possibile usare un file di parametri del modello di Azure Resource Manager (ARM) per consentire configurazioni diverse dei parametri per ogni distribuzione.

Questo esercizio usa gli Strumenti di Azure Resource Manager per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code.

Creare un tag per tenere traccia dell'ambiente di distribuzione delle risorse e del progetto

Prima di tutto si creerà un parametro da usare come tag delle risorse nel modello.

  1. In Visual Studio Code, nel file azuredeploy.json posizionare il cursore dopo la parentesi di chiusura del parametro storageSKU. Aggiungere una virgola e premere INVIO.

  2. Digitare par. Viene visualizzato un elenco dei frammenti di codice correlati.

  3. Selezionare arm-param. Tenere presente che questa azione aggiunge un parametro generico al modello, Sembra questo codice:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Modificare parameter1 in resourceTags e modificare il valore di "type": in object. Ricordare che i parametri possono avere tipi di dati string, secureString, int, bool, object, secureObject e array. Un collegamento alla sintassi di esempio per questi tipi di parametro è disponibile nel riepilogo di questo modulo.

  5. Aggiungere un attributo denominato defaultValue: e impostare il valore su {"Environment": "Dev", "Project": "Tutorial"}.

    Il blocco di parametri sarà simile al codice seguente:

    "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. Usare questo parametro per contrassegnare la risorsa dell'account di archiviazione. Modificare l'attributo tags: nella definizione della risorsa:

    "tags": "[parameters('resourceTags')]",
    
  7. Il file avrà un aspetto simile al seguente:

    {
        "$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. Salvare il file.

Distribuire il modello di Resource Manager con tag aggiornati

  • Distribuire il modello di Resource Manager in Azure. Assicurarsi di usare lo stesso storagePrefix usato in precedenza.

    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
    
  • Distribuire il modello di Resource Manager in Azure. Assicurarsi di usare lo stesso storagePrefix usato in precedenza.

    $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
    

Verificare che i nuovi tag siano inclusi nella distribuzione

  1. In Azure selezionare il gruppo di risorse [nome gruppo di risorse sandbox], quindi selezionare l'account di archiviazione distribuito.

  2. Si noti l'ambiente : Dev e Project : Tutorial:

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

Usare un file di parametri

Per ogni distribuzione del modello vengono attualmente specificati tre parametri. Ogni utente del modello può creare un file che contenga i valori dei parametri. Si creerà un file di parametri da usare con il modello.

  1. Creare un altro file in Visual Studio Code. Denominarlo azuredeploy.parameters.dev.json.

  2. In questo file si aggiungono i valori per i parametri del modello che si vogliono inserire nel modello per l'ambiente di sviluppo. Modificare il valore di un tag per osservare una modifica nella distribuzione. Ad esempio, cambiare projectName 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. Assicurarsi di sostituire {unique-prefix} con il proprio prefisso univoco.

  4. Salvare il file.

Distribuire il modello con il file di parametri

In questa sezione si distribuirà il modello di Resource Manager specificando il file di parametri da usare.

  1. Nel terminale di Visual Studio Code eseguire questi comandi dell'interfaccia della riga di comando di Azure:

    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. Controllare Azure per verificare che la distribuzione sia stata completata e che il valore del tag sia stato modificato:

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

  3. Come verifica, provare a creare un file di parametri per l'ambiente di produzione. Modificare il percorso del file di parametri quando si esegue il comando per la distribuzione nell'ambiente di produzione.

  1. Nel terminale di Visual Studio Code eseguire questi comandi di Azure PowerShell:

    $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. Controllare Azure per verificare che la distribuzione sia stata completata e che il valore del tag sia stato modificato:

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

  3. Come verifica, provare a creare un file di parametri per l'ambiente di produzione. Modificare il percorso del file di parametri quando si esegue il comando per la distribuzione nell'ambiente di produzione.