Gestire più distribuzioni di Azure usando i tag e i file di parametri del modello di Azure Resource Manager

Completato

Sono disponibili due funzionalità dei modelli di Azure Resource Manager (ARM) che vuoi usare quando esegui la distribuzione in più ambienti Azure. Queste funzionalità sono i tag delle risorse e i file di parametri del modello di Resource Manager.

Man mano che aggiungi altre risorse agli ambienti, scopri che è necessario un metodo per identificare lo scopo delle risorse. Le risorse hanno un attributo tags: per questo scopo. Quando esegui la distribuzione in più ambienti, necessiti di un metodo efficiente per tenere traccia dei parametri di input. I modelli di Resource Manager possono usare i file di parametri per gestire i parametri per ogni ambiente di distribuzione.

Che cos'è un tag di risorsa di Azure?

È possibile contrassegnare le risorse per aggiungere valori che consentono di identificarne l'utilizzo. È ad esempio possibile aggiungere tag che indicano l'ambiente e il progetto a cui appartiene una risorsa. In alternativa, è possibile aggiungere tag che identificano un centro di costo o il team proprietario di una risorsa. Aggiungere tutti i valori utili per l'organizzazione.

Il valore dei tag verrà visualizzato nella pagina di panoramica per la risorsa di Azure e nei report sui costi.

Come si crea una tag delle risorse di Azure?

Ogni risorsa ha un attributo tags:. Finora è stato usato l'attributo predefinito displayName per il tag per l'account di archiviazione:

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Per rendere più utile questo attributo, è possibile definire un parametro che contiene altre informazioni e quindi usare il parametro nell'attributo tags:. È ad esempio possibile creare un parametro che contenga un oggetto denominato resourceTags:

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

In questo caso hai creato un oggetto per contenere i valori del nome di ambiente e del nome di progetto, ma puoi definire qualsiasi elemento desiderato.

Puoi usare quindi il parametro per tutte le risorse per l'ambiente di sviluppo e per il progetto di inventario, ad esempio per l'account di archiviazione.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

Che cos'è un file di parametri del modello di Resource Manager?

Un file di parametri del modello di Resource Manager contiene valori passati al modello di Resource Manager quando viene eseguito il modello. Usando un file di parametri per ogni ambiente in cui viene distribuito un modello di ARM, puoi avere la certezza che vengano impostati i parametri corretti per l'ambiente specifico. Ci si assicura anche di poter tenere traccia della cronologia e della manutenzione dei valori dei parametri nel controllo del codice sorgente.

Come si usano i file di parametri del modello di Resource Manager?

I file di parametri del modello di Resource Manager sono file JSON che contengono i valori di parametro. Ad esempio, per i parametri usati finora nel modello di Resource Manager, puoi creare un file di parametri del modello, come indicato di seguito:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storagePrefix": {
        "value": "storage"
      },
      "storageSKU": {
        "value": "Standard_LRS"
      },
      "resourceTags": {
        "value": {
          "Environment": "Dev",
          "Project": "Learn"
        }
      }
    }
  }

È quindi possibile creare un file simile per ogni ambiente. Questi file possono ad esempio essere denominati azuredeploy.parameters.dev.json e azuredeploy.parameters.prod.json e contenere valori diversi per i parametri.

Per distribuire un modello di Resource Manager usando un file di parametri, specifica il percorso del file di parametri nel comando di distribuzione. Nell'interfaccia della riga di comando di Azure usi --parameters {path to parameter file}. In PowerShell usi -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile