Partager via


Tutoriel : Ajouter des sorties à votre modèle ARM

Dans ce tutoriel, vous allez apprendre à retourner une valeur à partir de votre modèle Azure Resource Manager (modèle ARM). Vous utilisez des sorties lorsque vous avez besoin d’une valeur pour une ressource que vous déployez. Ce tutoriel dure environ 7 minutes.

Prérequis

Nous vous recommandons de suivre le tutoriel sur les variables, mais ce n’est pas obligatoire.

Vous avez besoin de Visual Studio Code avec l’extension Resource Manager Tools et, au choix, Azure PowerShell ou l’interface de ligne de commande Azure (Azure CLI). Pour plus d’informations, consultez les outils de modèle.

Vérifier le modèle

À la fin du précédent tutoriel, votre modèle présentait le code JSON suivant :

{
  "$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"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Il déploie un compte de stockage, mais il ne retourne aucune information le concernant. Vous aurez peut-être besoin de capturer les propriétés de votre nouvelle ressource afin de les avoir sous la main pour référence.

Ajouter des sorties

Vous pouvez utiliser des sorties pour retourner des valeurs à partir du modèle. Il peut par exemple être utile d’obtenir les points de terminaison pour votre nouveau compte de stockage.

L’exemple suivant met en évidence la modification apportée à votre modèle pour ajouter une valeur de sortie. Copiez l’intégralité du fichier et remplacez votre modèle par son contenu.

{
  "$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"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Il y a quelques éléments importants à noter concernant la valeur de sortie que vous avez ajoutée.

Le type de valeur retournée est défini sur object, ce qui signifie qu’il retourne un objet JSON.

Il utilise la fonction reference pour récupérer l’état d’exécution du compte de stockage. Pour obtenir l’état d’exécution d’une ressource, transmettez le nom ou l’ID d’une ressource. Dans ce cas, vous utilisez la même variable que celle que vous avez utilisée pour créer le nom du compte de stockage.

Enfin, il retourne la propriété primaryEndpoints du compte de stockage.

Déployer un modèle

Vous êtes prêt à déployer le modèle et à examiner la valeur retournée.

Si vous n’avez pas créé le groupe de ressources, consultez Créer un groupe de ressources. L’exemple suppose que vous avez défini la variable templateFile sur le chemin du fichier de modèle, comme indiqué dans le premier tutoriel.

New-AzResourceGroupDeployment `
  -Name addoutputs `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Dans la sortie de la commande de déploiement, un objet semblable à l’exemple suivant s’affiche uniquement si la sortie est au format JSON :

{
    "dfs": "https://storeluktbfkpjjrkm.dfs.core.windows.net/",
    "web": "https://storeluktbfkpjjrkm.z19.web.core.windows.net/",
    "blob": "https://storeluktbfkpjjrkm.blob.core.windows.net/",
    "queue": "https://storeluktbfkpjjrkm.queue.core.windows.net/",
    "table": "https://storeluktbfkpjjrkm.table.core.windows.net/",
    "file": "https://storeluktbfkpjjrkm.file.core.windows.net/"
}

Notes

En cas d’échec du déploiement, utilisez le commutateur verbose pour obtenir des informations sur les ressources créées. Utilisez le commutateur debug pour obtenir des informations supplémentaires sur le débogage.

Passer en revue votre travail

Vous avez fait beaucoup de choses au cours des six derniers tutoriels. Prenons un moment pour regarder ensemble votre travail. Vous avez créé un modèle avec des paramètres qui sont faciles à fournir. Le modèle est réutilisable dans différents environnements parce qu’il peut être personnalisé et crée de façon dynamique les valeurs nécessaires. Il retourne également des informations sur le compte de stockage que vous pouvez utiliser dans votre script.

À présent, examinons le groupe de ressources et l’historique de déploiement.

  1. Connectez-vous au portail Azure.

  2. Dans le menu de gauche, sélectionnez Groupes de ressources.

  3. Sélectionnez le groupe de ressources sur lequel vous avez effectué le déploiement.

  4. Selon les étapes que vous avez effectuées, vous devez avoir au moins un compte de stockage, si ce n’est plusieurs, dans le groupe de ressources.

  5. Vous devez également disposer de plusieurs déploiements réussis dans l’historique. Sélectionnez ce lien.

    Capture d’écran du Portail Azure montrant le lien vers les déploiements.

  6. Vous voyez tous vos déploiements dans l’historique. Sélectionnez le déploiement nommé addoutputs.

    Capture d’écran du Portail Azure montrant l’historique de déploiement.

  7. Vous pouvez passer en revue les entrées.

    Capture d’écran du Portail Azure montrant les entrées du déploiement.

  8. Vous pouvez examiner les sorties.

    Capture d’écran du Portail Azure montrant les sorties du déploiement.

  9. Vous pouvez examiner le modèle.

    Capture d’écran du Portail Azure montrant le modèle de déploiement.

Nettoyer les ressources

Si vous passez au tutoriel suivant, vous n’avez pas besoin de supprimer le groupe de ressources.

Si vous arrêtez maintenant, vous pouvez supprimer le groupe de ressources.

  1. Dans le portail Azure, sélectionnez Groupes de ressources dans le menu de gauche.
  2. Tapez le nom du groupe de ressources dans la zone de texte Filtre pour n’importe quel champ...
  3. Cochez la case en regard de myResourceGroup et sélectionnez myResourceGroup ou le nom de votre groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Dans ce tutoriel, vous avez ajouté une valeur retournée au modèle. Dans le tutoriel suivant, vous allez apprendre à exporter un modèle et à utiliser des parties de ce modèle exporté dans votre modèle.