Exercice : utiliser des fonctions Azure Resource Manager pour créer des expressions

Effectué

Notes

La première fois que vous activez un bac à sable et que vous acceptez les conditions d’utilisation, votre compte Microsoft est associé à un nouvel annuaire Azure appelé Microsoft Learn Sandbox (Bac à sable Microsoft Learn). Vous êtes ajouté à un abonnement spécial nommé Abonnement Concierge.

Dans cet exercice, vous créez une expression en utilisant des fonctions de modèle Azure Resource Manager (ARM). L’expression crée un nom unique pour chaque groupe de ressources en combinant une entrée de préfixe avec un hachage de l’ID du groupe de ressources. Il en résulte des noms de compte de stockage Azure comme dev2hu6sbtr5 et staging5his8hgr67.

Dans cet exercice, vous allez utiliser les Outils Azure Resource Manager pour Visual Studio Code. Assurez-vous d’installer cette extension dans Visual Studio Code.

Créer le fichier de modèle ARM

Dans le module précédent, vous avez créé un modèle ARM qui a déployé un compte de stockage. Vous avez ajouté des paramètres et une sortie à ce fichier. Ici, vous commencez avec ce fichier, mais la sortie est supprimée de façon à réduire la surcharge.

  1. Ouvrez Visual Studio Code et créez un fichier appelé azuredeploy.json. Si vous obtenez ce fichier à partir du module précédent, vous pouvez l’utiliser.

  2. Remplacez le contenu du fichier par le code suivant :

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
           "storageName": {
               "type": "string",
               "minLength": 3,
               "maxLength": 24
           },
            "storageSKU": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_RAGRS",
                    "Standard_ZRS",
                    "Premium_LRS",
                    "Premium_ZRS",
                    "Standard_GZRS",
                    "Standard_RAGZRS"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[parameters('storageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[parameters('storageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
         "outputs": {}
    }
    
  3. Si vous n’avez pas terminé le module précédent, prenez un moment pour examiner ce fichier. Notez le paramètre storageName. Ce paramètre est utilisé pour passer un nom unique pour le compte de stockage.

Créer une expression pour définir un nom de compte de stockage unique

Au lieu de transmettre le nom du compte de stockage, vous modifiez le paramètre pour qu’il prenne le préfixe du nom du compte de stockage. Ce paramètre est passé à la fonction concat dans votre expression.

  1. Dans la section parameters, remplacez storageName par storagePrefix.

  2. Changez la valeur de l’attribut maxLength: du paramètre storagePrefix en 11. La longueur maximale d’un nom de compte de stockage est de 24 caractères et vous devez vous assurer que le code de hachage ajouté à partir de la fonction que vous avez créée n’entraîne pas une valeur supérieure à 24.

  3. Créez l’expression pour définir le nom de compte de stockage unique. Dans la section resources, remplacez la valeur des attributs name: et displayName: de "[parameters('storageName')]" par "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Vous avez découvert des informations sur cette expression dans l’unité précédente. Le fichier doit maintenant se présenter ainsi :

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

Déployer le modèle ARM sur Azure

Pour déployer ce modèle dans Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que les outils Azure CLI sont installés. Veillez également à vous connecter au même compte que celui qui a activé le bac à sable (sandbox).

  1. Ouvrez une fenêtre de terminal en utilisant le menu Terminal.

  2. Si le menu déroulant à droite de la fenêtre de terminal indique bash, c’est que vous disposez du bon shell pour travailler. Vous pouvez passer à la section suivante.

    A screenshot that shows the Visual Studio Code terminal window with bash in the drop-down menu.

  3. Si vous ne disposez pas du bon shell, sélectionnez Sélectionner l’interpréteur de commandes par défaut dans le menu déroulant.

  4. Sélectionnez bash :

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. Sélectionnez + dans le terminal pour créer un nouveau terminal avec le shell bash.

Connexion à Azure

  1. À partir du terminal dans Visual Studio Code, exécutez la commande suivante pour vous connecter à Azure. L’exécution de cette commande ouvre un navigateur qui vous permet de vous connecter à votre compte :

    az login
    
  2. Une fois que vous êtes connecté, vous voyez dans le terminal une liste des abonnements associés au compte. Si vous avez activé le bac à sable, vous voyez un abonnement appelé Abonnement Concierge. Utilisez celui-ci pour le reste de l’exercice.

  3. Définissez l’abonnement par défaut pour toutes les commandes Azure CLI que vous exécutez dans cette session :

    az account set --subscription "Concierge Subscription"
    

    Notes

    Si vous avez utilisé récemment plusieurs bacs à sable, plusieurs abonnements Concierge peuvent figurer dans la liste. Dans ce cas, utilisez les deux étapes suivantes pour définir l’abonnement par défaut. Si la commande ci-dessus a réussi, passez les deux étapes suivantes.

  4. Obtenez les ID d’abonnement Concierge :

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Définissez l’abonnement par défaut en utilisant l’ID d’abonnement. Remplacez {your subscription ID} par l’ID d’abonnement Concierge le plus récent.

    az account set --subscription {your subscription ID}
    

Définir votre groupe de ressources par défaut

  • Définissez le groupe de ressources par défaut sur le groupe de ressources créé pour vous dans l’environnement du bac à sable. Ceci vous permet d’omettre ce paramètre dans le reste des commandes Azure CLI de cet exercice.

    az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
    

Déployer le modèle sur Azure

Vous avez découvert les commandes de déploiement dans le module précédent. Ici, vous utilisez la commande Azure CLI az deployment group create.

  • Déployez le modèle en utilisant des commandes Azure CLI dans le terminal Visual Studio Code. N’oubliez pas de remplacer {your-prefix} par une chaîne différente. Vous pouvez par exemple utiliser stockage.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addfunction-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storagePrefix={your-prefix}
    

    Dans la première section de ce code, vous définissez des variables Azure CLI pour le chemin du fichier de modèle que vous voulez déployer et pour le nom du déploiement. Vous utilisez ensuite la commande az deployment group create pour déployer le modèle sur Azure.

    Vous devez aussi voir le message Running... dans le terminal.

Pour déployer ce modèle sur Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que les outils Azure PowerShell sont installés et que vous vous connectez au même compte que celui qui a activé le bac à sable.

  1. Ouvrez une fenêtre de terminal en utilisant le menu Terminal.

  2. Si le menu déroulant à droite de la fenêtre de terminal indique pwsh, c’est que vous disposez du bon shell pour travailler. Vous pouvez passer à la section suivante.

    A screenshot that shows the Visual Studio Code terminal window with pwsh in the drop-down menu.

  3. Si vous ne disposez pas du bon shell, sélectionnez Sélectionner l’interpréteur de commandes par défaut dans le menu déroulant.

  4. Sélectionnez pwsh.

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. Sélectionnez + dans le terminal pour créer un nouveau terminal avec le shell pwsh.

Connectez-vous à Azure en utilisant Azure PowerShell

  1. À partir du terminal dans Visual Studio Code, exécutez la commande suivante pour vous connecter à Azure. Quand vous exécutez cette commande, vous êtes invité à ouvrir un navigateur vers une URL qui vous permet de vous connecter à votre compte. Utilisez le code qui se trouve dans l’invite. Veillez à vous connecter avec le même compte que celui utilisé pour activer le bac à sable.

    Connect-AzAccount
    
  2. Une fois que vous êtes connecté, vous voyez dans le terminal une liste des abonnements associés au compte. Si vous avez activé le bac à sable, vous voyez un abonnement appelé Abonnement Concierge. Utilisez celui-ci pour le reste de l’exercice.

    Définissez l’abonnement par défaut pour toutes les commandes Azure CLI que vous exécutez dans cette session.

  3. Obtenir l’ID d’abonnement. La commande répertorie vos abonnements et leurs ID. L’ID d’abonnement est la deuxième colonne. Recherchez Concierge Subscription et copiez la deuxième colonne. Elle se présente comme suit : cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  4. Remplacez votre abonnement actif par l’abonnement Concierge. Veillez à remplacer {Your subscription ID} par l’ID que vous avez copié.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  5. Définissez le groupe de ressources par défaut sur le groupe de ressources créé pour vous dans l’environnement de bac à sable. Ceci vous permet d’omettre ce paramètre dans le reste des commandes Azure PowerShell de cet exercice.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

Déployer le modèle sur Azure

Vous avez découvert les commandes de déploiement dans le module précédent. Ici, vous utilisez la commande Azure PowerShell New-AzResourceGroupDeployment.

  • Déployez le modèle en utilisant des commandes Azure PowerShell dans le terminal Visual Studio Code. N’oubliez pas de remplacer {your-prefix} par une chaîne différente. Vous pouvez par exemple utiliser stockage.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addfunction-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your-prefix}
    

Dans la première section de ce code, vous définissez des variables Azure PowerShell pour le chemin d’accès au fichier de modèle que vous voulez déployer et pour le nom du déploiement. Vous utilisez ensuite la commande New-AzResourceGroupDeployment pour déployer le modèle sur Azure.

Vérifier votre déploiement

Une fois le déploiement terminé, accédez au Portail Azure et vérifiez que vous êtes dans l’abonnement bac à sable. Pour vérifier l’abonnement, sélectionnez votre avatar dans le coin supérieur droit de la page. Sélectionnez Changer de répertoire. Dans la liste, sélectionnez le répertoire Microsoft Learn Sandbox (Bac à sable Microsoft Learn).

  1. Dans le volet de gauche, sélectionnez Groupes de ressources.

  2. Sélectionnez [nom du groupe de ressources du bac à sable].

  3. Dans la section Vue d’ensemble, vous voyez qu’un déploiement a réussi :

    Screenshot of the Azure portal that shows the resource group overview. The Deployments section shows that one deployment succeeded.

  4. Sélectionnez 1 Réussi pour afficher les détails du déploiement :

    Screenshot of the Azure portal that shows deployments. One deployment is listed and has a status of Succeeded.

  5. Sélectionnez addfunction pour voir quelles ressources ont été déployées :

    Screenshot of the Azure portal that shows that the storage account deployed.

  6. Laissez la page ouverte dans votre navigateur afin de pouvoir vérifier les déploiements ultérieurement dans le module.