Exercice : Créer et déployer un spec de modèle
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 nouveau répertoire Azure appelé Microsoft Learn Sandbox (bac à sable Microsoft Learn). Vous êtes également ajouté à un abonnement spécial nommé Abonnement Concierge.
Au sein de votre entreprise de jouets, votre équipe travaille avec Azure depuis un certain temps et vous avez créé de nombreux modèles que vous utilisez quotidiennement. Vous décidez d’utiliser un modèle et de créer un spec de modèle. Vous commencez avec le modèle que vous utilisez pour créer des comptes Azure Cosmos DB.
Votre équipe a décidé que la sauvegarde continue doit être configurée sur tous vos comptes Azure Cosmos DB. Vous devez donc inclure les sauvegardes dans la configuration par défaut des comptes Azure Cosmos DB qui sont provisionnés via le spec de modèle.
Dans cet exercice, vous publiez le modèle Azure Cosmos DB en tant que spec de modèle.
Pendant ce processus, vous allez :
- Créez un modèle que vous utiliserez comme spec de modèle.
- Mettez à jour le modèle pour vous assurer que les paramètres sont faciles à comprendre et à utiliser.
- Publiez le spec de modèle.
- Vérifiez les spécifications du modèle à l’aide du portail Azure.
- Déployez le spec de modèle pour le tester.
- Vérifier le déploiement
Cet exercice utilise l’extension Bicep pour Visual Studio Code. Assurez-vous d’installer cette extension dans Visual Studio Code.
Créer le modèle
Vous commencez par l’un des modèles que votre équipe a créés. Le modèle déploie un compte Azure Cosmos DB et le configure pour activer la sauvegarde continue.
Ouvrez Visual Studio Code.
Créez un fichier nommé main.bicep.
Enregistrez le fichier vide afin que Visual Studio Code charge les outils Bicep.
Vous pouvez soit sélectionner Fichier>Enregistrer sous, soit Ctrl+S dans Windows (⌘+S sur macOS). Assurez-vous de bien noter l’emplacement de sauvegarde du fichier. Vous pouvez par exemple créer un dossier scripts pour l’y enregistrer.
Copiez le code suivant dans main.bicep :
param location string = resourceGroup().location param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2021-04-15' = { name: cosmosDBAccountName kind: 'GlobalDocumentDB' location: location properties: { consistencyPolicy: { defaultConsistencyLevel: 'Session' } locations: [ { locationName: location failoverPriority: 0 isZoneRedundant: false } ] databaseAccountOfferType: 'Standard' enableAutomaticFailover: false enableMultipleWriteLocations: false backupPolicy: { type: 'Continuous' } } }
Notez que vous avez défini
backupPolicy
surContinuous
. Cette valeur configure Azure Cosmos DB pour effectuer des sauvegardes de vos données de manière continue plutôt que régulièrement.Enregistrez le fichier .
Ouvrez Visual Studio Code.
Créez un fichier nommé azuredeploy.json.
Enregistrez le fichier vide afin que Visual Studio Code charge les outils du modèle Azure Resource Manager (modèle ARM).
Vous pouvez soit sélectionner Fichier>Enregistrer sous, soit Ctrl+S dans Windows (⌘+S sur macOS). Assurez-vous de bien noter l’emplacement de sauvegarde du fichier. Vous pouvez par exemple créer un dossier scripts pour l’y enregistrer.
Copiez le code suivant dans azuredeploy.json :
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "defaultValue": "[resourceGroup().location]" }, "cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]" } }, "resources": [ { "type": "Microsoft.DocumentDB/databaseAccounts", "apiVersion": "2021-04-15", "name": "[parameters('cosmosDBAccountName')]", "kind": "GlobalDocumentDB", "location": "[parameters('location')]", "properties": { "consistencyPolicy": { "defaultConsistencyLevel": "Session" }, "locations": [ { "locationName": "[parameters('location')]", "failoverPriority": 0, "isZoneRedundant": false } ], "databaseAccountOfferType": "Standard", "enableAutomaticFailover": false, "enableMultipleWriteLocations": false, "backupPolicy": { "type": "Continuous" } } } ] }
Notez que vous affectez à
backupPolicy
la valeurContinuous
. Cette valeur configure Azure Cosmos DB pour effectuer des sauvegardes de vos données de manière continue plutôt que régulièrement.Enregistrez le fichier .
Rendre les paramètres plus faciles à comprendre
Lorsque vous utilisez des spécifications de modèle, il est important de prendre en compte la façon dont d’autres utilisateurs utilisent votre modèle. Cette révision est particulièrement importante pour les paramètres, car elles sont la principale façon dont d’autres personnes interagissent avec votre code. Les paramètres dans le modèle de votre équipe n’incluent pas de descriptions ou d’autres indications sur la façon dont ils doivent être utilisés. Vous pouvez donc ajouter ces informations ici.
Mettez à jour la définition du paramètre
location
en ajoutant une description :@description('The Azure region into which the Cosmos DB resources should be deployed.') param location string = resourceGroup().location
Mettez à jour la définition du paramètre
cosmosDBAccountName
pour ajouter une description, et pour spécifier les longueurs minimale et maximale du nom :@description('The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens.') @minLength(3) @maxLength(44) param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}'
Enregistrez le fichier.
Mettez à jour la définition du paramètre
location
en ajoutant une description :"location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The Azure region into which the Cosmos DB resources should be deployed." } },
Mettez à jour la définition du paramètre
cosmosDBAccountName
pour ajouter une description, et pour spécifier les longueurs minimale et maximale du nom :"cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]", "maxLength": 44, "minLength": 3, "metadata": { "description": "The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens." } }
Enregistrez le fichier .
Connexion à Azure
Pour déployer ce modèle sur Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code. Veillez à installer Azure CLI sans oublier de vous connecter avec le même compte que celui utilisé pour activer le bac à sable.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si l’interpréteur de commandes affiché sur le côté droit de la fenêtre de terminal est bash, il s’agit du bon interpréteur de commandes qui est ouvert et vous pouvez passer à la section suivante.
Si un interpréteur de commandes autre que bash apparaît, sélectionnez la flèche déroulante des interpréteurs de commandes, puis Azure Cloud Shell (Bash).
Dans la liste des interpréteurs de commandes de terminal, sélectionnez bash.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
cd templates
Installer Bicep
Exécutez la commande suivante pour vous assurer de disposer de la dernière version de Bicep :
az bicep install && az bicep upgrade
Connexion à Azure
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
az login
Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.
Le terminal Visual Studio Code affiche la liste des abonnements associés à ce compte.
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é plusieurs bacs à sable récemment, le terminal risque d’afficher plusieurs instances de l’abonnement Concierge. Dans ce cas, utilisez les deux étapes suivantes pour en définir un comme l’abonnement par défaut. Si la commande précédente a réussi et qu’un seul abonnement Concierge est listé, ignorez les deux étapes suivantes.
Obtenez les ID des abonnements Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Définissez l’abonnement par défaut en utilisant l’ID d’abonnement. Remplacez {your subscription ID} par l’ID du dernier abonnement Concierge.
az account set --subscription {your subscription ID}
Définir le groupe de ressources par défaut
Quand vous utilisez Azure CLI, vous pouvez définir le groupe de ressources par défaut et omettre le paramètre du reste des commandes Azure CLI dans cet exercice. Définissez le paramètre par défaut sur le groupe de ressources qui est créé pour vous dans l’environnement bac à sable.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Pour déployer ce modèle sur Azure, connectez-vous à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que vous avez installé Azure PowerShell et connectez-vous au même compte que celui qui a activé le bac à sable.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si l’interpréteur de commandes affiché sur le côté droit de la fenêtre de terminal est powershell ou pwsh, il s’agit du bon interpréteur de commandes qui est ouvert et vous pouvez passer à la section suivante.
Si un shell autre que powershell ou pwsh apparaît, sélectionnez la flèche déroulante des interpréteurs de commandes, puis PowerShell.
Dans la liste d’interpréteurs de commandes de terminal, sélectionnez powershell ou pwsh.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
Set-Location -Path templates
Installer l’interface CLI Bicep
Pour utiliser Bicep à partir d’Azure PowerShell, installez l’interface CLI de Bicep.
Connectez-vous à Azure en utilisant Azure PowerShell
Dans le terminal Visual Studio Code, exécutez la commande suivante :
Connect-AzAccount
Un navigateur s’ouvre pour vous permettre de vous connecter à votre compte Azure.
Une fois que vous êtes connecté à Azure, le terminal affiche une liste des abonnements associés à ce compte.
Si vous avez activé le bac à sable, un abonnement appelé Abonnement Concierge s’affiche. Utilisez-le pour le reste de l’exercice.
Définissez l’abonnement par défaut pour toutes les commandes Azure PowerShell que vous exécutez dans cette session.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Notes
Si vous avez utilisé plusieurs bacs à sable récemment, le terminal risque d’afficher plusieurs instances de l’abonnement Concierge. Dans ce cas, utilisez les deux étapes suivantes pour en définir un comme l’abonnement par défaut. Si la commande précédente a réussi et qu’un seul abonnement Concierge est listé, ignorez les deux étapes suivantes.
Obtenir l’ID d’abonnement. L’exécution de la commande suivante liste vos abonnements et leurs ID. Recherchez
Concierge Subscription
, puis copiez l’ID de la deuxième colonne. Il doit ressembler à ceci :aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Remplacez votre abonnement actif par l’abonnement Concierge. Veillez à remplacer {Votre ID d’abonnement} par celui que vous avez copié.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Définir votre groupe de ressources par défaut
Vous pouvez définir le groupe de ressources par défaut et omettre le paramètre du reste des commandes Azure PowerShell dans cet exercice. Définissez ce paramètre par défaut sur le groupe de ressources créé pour vous dans l’environnement de bac à sable.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Pour déployer ce modèle sur Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code. Veillez à installer Azure CLI sans oublier de vous connecter avec le même compte que celui utilisé pour activer le bac à sable.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si l’interpréteur de commandes affiché sur le côté droit de la fenêtre de terminal est bash, il s’agit du bon interpréteur de commandes qui est ouvert et vous pouvez passer à la section suivante.
Si un interpréteur de commandes autre que bash apparaît, sélectionnez la flèche déroulante des interpréteurs de commandes, puis Azure Cloud Shell (Bash).
Dans la liste des interpréteurs de commandes de terminal, sélectionnez bash.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
cd templates
Connexion à Azure
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
az login
Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.
Le terminal Visual Studio Code affiche la liste des abonnements associés à ce compte.
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é plusieurs bacs à sable récemment, le terminal risque d’afficher plusieurs instances de l’abonnement Concierge. Dans ce cas, utilisez les deux étapes suivantes pour en définir un comme l’abonnement par défaut. Si la commande précédente a réussi et qu’un seul abonnement Concierge est listé, ignorez les deux étapes suivantes.
Obtenez les ID des abonnements Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Définissez l’abonnement par défaut en utilisant l’ID d’abonnement. Remplacez {your subscription ID} par l’ID du dernier abonnement Concierge.
az account set --subscription {your subscription ID}
Définir le groupe de ressources par défaut
Quand vous utilisez Azure CLI, vous pouvez définir le groupe de ressources par défaut et omettre le paramètre du reste des commandes Azure CLI dans cet exercice. Définissez le paramètre par défaut sur le groupe de ressources qui est créé pour vous dans l’environnement bac à sable.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Pour déployer ce modèle sur Azure, connectez-vous à votre compte Azure à partir du terminal Visual Studio Code. Vérifiez que vous avez installé Azure PowerShell et connectez-vous au même compte que celui qui a activé le bac à sable.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si l’interpréteur de commandes affiché sur le côté droit de la fenêtre de terminal est powershell ou pwsh, il s’agit du bon interpréteur de commandes qui est ouvert et vous pouvez passer à la section suivante.
Si un shell autre que powershell ou pwsh apparaît, sélectionnez la flèche déroulante des interpréteurs de commandes, puis PowerShell.
Dans la liste d’interpréteurs de commandes de terminal, sélectionnez powershell ou pwsh.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
Set-Location -Path templates
Connectez-vous à Azure en utilisant Azure PowerShell
Dans le terminal Visual Studio Code, exécutez la commande suivante :
Connect-AzAccount
Un navigateur s’ouvre pour vous permettre de vous connecter à votre compte Azure.
Une fois que vous êtes connecté à Azure, le terminal affiche une liste des abonnements associés à ce compte.
Si vous avez activé le bac à sable, un abonnement appelé Abonnement Concierge s’affiche. Utilisez-le pour le reste de l’exercice.
Définissez l’abonnement par défaut pour toutes les commandes Azure PowerShell que vous exécutez dans cette session.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Notes
Si vous avez utilisé plusieurs bacs à sable récemment, le terminal risque d’afficher plusieurs instances de l’abonnement Concierge. Dans ce cas, utilisez les deux étapes suivantes pour en définir un comme l’abonnement par défaut. Si la commande précédente a réussi et qu’un seul abonnement Concierge est listé, ignorez les deux étapes suivantes.
Obtenir l’ID d’abonnement. L’exécution de la commande suivante liste vos abonnements et leurs ID. Recherchez
Concierge Subscription
, puis copiez l’ID de la deuxième colonne. Il doit ressembler à ceci :aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Remplacez votre abonnement actif par l’abonnement Concierge. Veillez à remplacer {Votre ID d’abonnement} par celui que vous avez copié.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Définir votre groupe de ressources par défaut
Vous pouvez définir le groupe de ressources par défaut et omettre le paramètre du reste des commandes Azure PowerShell dans cet exercice. Définissez ce paramètre par défaut sur le groupe de ressources créé pour vous dans l’environnement de bac à sable.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Publier le modèle en tant que spec de modèle
Publiez le spec de modèle en utilisant cette cmdlet Azure PowerShell dans le terminal Visual Studio Code :
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile main.bicep
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile azuredeploy.json
Publiez le spec de modèle en utilisant cette commande Azure CLI dans le terminal Visual Studio Code :
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file main.bicep
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file azuredeploy.json
Utiliser le portail Azure pour vérifier le spec de modèle
Accédez au portail Azure et vérifiez que vous êtes bien dans l’abonnement de bac à sable :
- Sélectionnez votre avatar dans le coin supérieur droit de la page.
- Sélectionnez Changer de répertoire. Dans la liste, choisissez le répertoire Bac à sable Microsoft Learn.
Dans le volet de gauche, sélectionnez Groupes de ressources.
Sélectionnez
[nom du groupe de ressources du bac à sable] . Notez que le spec de modèle est inclus dans la liste des ressources :Sélectionnez ToyCosmosDBAccount pour ouvrir le spec de modèle. Les versions et le fichier de modèle sont visibles.
Déployer le spec de modèle
Par souci de simplicité, vous déployez la spec de modèle dans le même groupe de ressources de bac à sable dans lequel la spécification de modèle elle-même est stockée. Normalement, vous conservez les specs de modèle dans un groupe de ressources différent. Toutefois, les étapes sont les mêmes dans les deux cas.
Obtenez l’ID de ressource de la version du spec de modèle en exécutant la commande Azure PowerShell suivante :
$templateSpecVersionResourceId = (` Get-AzTemplateSpec ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -Name ToyCosmosDBAccount ` -Version 1.0 ` ).Versions[0].Id
Notez que vous utilisez la propriété
Versions
. Lorsque vous déployez un spec de modèle, vous devez référencer l’ID de ressource de la version spécifique du spec de modèle à utiliser.Déployez le spec de modèle en utilisant cette commande Azure PowerShell dans le terminal Visual Studio Code :
New-AzResourceGroupDeployment -TemplateSpecId $templateSpecVersionResourceId
Obtenez l’ID de ressource de la version du spec de modèle en exécutant la commande Azure CLI suivante :
id=$(az ts show \ --name ToyCosmosDBAccount \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --version "1.0" \ --query "id")
Déployez le spec de modèle en utilisant cette commande Azure CLI dans le terminal Visual Studio Code :
az deployment group create --template-spec $id
Le déploiement peut prendre une minutes ou deux.
Vérifier votre déploiement
Dans votre navigateur, retournez au portail Azure. Accédez à votre groupe de ressources.
À côté de Déploiements, sélectionnez le lien 1 réussi pour afficher les détails du déploiement.
Sélectionnez le déploiement.
Le nom de votre déploiement peut être différent de celui de l’exemple.
Sélectionnez Détails du déploiement pour le développer. Vérifiez qu’un compte Azure Cosmos DB est déployé.