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

Completato

Esistono due funzionalità dei modelli di Azure Resource Manager (ARM) da usare quando si esegue la distribuzione in più di un ambiente Azure. Queste funzionalità sono i tag delle risorse e i file di parametri del modello ARM.

Man mano che si aggiungono altre risorse agli ambienti, è necessario trovare rapidamente un modo per identificare lo scopo di queste risorse. Le risorse hanno un tags: attributo a questo scopo. Quando si esegue la distribuzione in più ambienti, è necessario un modo efficiente per tenere traccia dei parametri di input. I modelli ARM 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'uso. Ad esempio, è possibile aggiungere tag che elencano 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 appropriati per l'organizzazione.

Il valore del tag viene visualizzato nella pagina di panoramica per la risorsa di Azure e nei report sui costi.

Come si crea un tag di risorsa di Azure?

Ogni risorsa ha un tags: attributo. Finora hai utilizzato il valore predefinito displayName per il tag del tuo account di archiviazione:

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

Per rendere più utile questo attributo, è possibile definire un parametro con altre informazioni e quindi usare tale parametro nell'attributo tags: . Ad esempio, è possibile creare un parametro per contenere un oggetto denominato resourceTags:

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

In questo caso è stato creato un oggetto per contenere i valori per un nome di ambiente e un nome di progetto, ma è possibile definire qualsiasi elemento desiderato.

È quindi possibile usare tale parametro per qualsiasi risorsa per l'ambiente di sviluppo e il progetto Inventory; ad esempio 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 ARM contiene valori che vengono passati al modello ARM quando quest'ultimo viene eseguito. Usando un file di parametri per ogni ambiente in cui viene distribuito un template ARM, si assicura che i parametri corretti siano impostati per quell'ambiente specifico. È anche possibile 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 ARM?

I file di parametri dei modelli ARM sono file JSON che contengono i valori dei parametri. Ad esempio, per i parametri che hai usato finora nel modello ARM, potresti creare un file di parametri del modello nel modo seguente:

{
    "$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 a questo per ogni ambiente. Ad esempio, questi file possono essere chiamati azuredeploy.parameters.dev.json e azuredeploy.parameters.prod.jsone contengono valori diversi per i parametri.

Per distribuire un modello ARM utilizzando un file di parametri, specificare il percorso del file di parametri nel comando di distribuzione. Nell'interfaccia della riga di comando di Azure si usa --parameters {path to parameter file}. In PowerShell viene utilizzato -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