Déployer un spec de modèle
Après avoir créé et publié votre spec de modèle, vous pouvez la déployer. Dans cette unité, vous découvrirez comment déployer un spec de modèle.
Créer un déploiement à l’aide d’un spec de modèle
Pour déployer une spec de modèle dans un groupe de ressources, vous utilisez la même cmdlet New-AzResourceGroupDeployment
qui vous est familière. Au lieu de spécifier un fichier de modèle, vous spécifiez l’ID de ressource d’un spec de modèle, comme illustré dans cet exemple :
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
Bien que les specs de modèle doivent être créés au sein d’un groupe de ressources, vous pouvez les déployer dans des abonnements, des groupes d’administration ou même des locataires à l’aide des cmdlets suivantes :
Pour effectuer un déploiement dans cette étendue : | Utilisez cette cmdlet PowerShell : |
---|---|
Resource group | New-AzResourceGroupDeployment |
Abonnement | New-AzSubscriptionDeployment |
Groupe d’administration | New-AzManagementGroupDeployment |
Locataire | New-AzTenantDeployment |
Chacune de ces cmdlets accepte le paramètre -TemplateSpecId
pour lancer un déploiement de spec de modèle sur l’une de ces étendues.
Pour déployer une spec de modèle dans un groupe de ressources, vous utilisez la même commande az deployment group create
qui vous est familière. Au lieu de spécifier un fichier de modèle, vous spécifiez l’ID de ressource d’un spec de modèle, comme illustré dans cet exemple :
az deployment group create \
--template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
Bien que les specs de modèle doivent être créés au sein d’un groupe de ressources, vous pouvez les déployer dans des abonnements, des groupes d’administration ou même des locataires à l’aide des commandes suivantes :
Pour effectuer un déploiement dans cette étendue : | Exécutez cette commande Azure CLI : |
---|---|
Resource group | az deployment group create |
Abonnement | az deployment sub create |
Groupe d’administration | az deployment mg create |
Locataire | az deployment tenant create |
Chacune de ces commandes accepte l’argument --template-spec
pour lancer un déploiement de spec de modèle sur l’une de ces étendues.
Utiliser un spec de modèle en tant que déploiement lié
Pour utiliser une spec de modèle à partir d’un autre modèle Azure Resource Manager (modèle ARM), vous créez un déploiement qui utilise cette spec de modèle. Ce type de déploiement est appelé un déploiement lié, car vous liez à un modèle de déploiement spécifié en externe.
Dans Azure, un déploiement est une ressource qui a le type de ressource Microsoft.Resources/deployments
. Lorsque vous déployez un modèle ARM, vous créez une ressource de déploiement. Le même concept s’applique quand vous déployez un spec de modèle, comme suit :
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
}
}
}
Quand vous avez des paramètres à fournir au déploiement de spec de modèle, vous utilisez la propriété parameters
:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
},
"parameters": {
"storageAccountName": {
"value": "[parameters('storageAccountName')]"
}
}
}
}
Utiliser un spec de modèle en tant que module Bicep
Vous pouvez utiliser un spec de modèle en tant que module dans un fichier Bicep :
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
Notez que le chemin du module utilise un format spécial :
Le chemin du module comporte trois composants, séparés par le caractère deux-points (:
) :
- Schéma : Bicep prend en charge plusieurs types de module, appelés schémas. Quand vous utilisez un spec de modèle en tant que module, vous utilisez
ts
en tant que schéma. - ID d’abonnement, nom du groupe de ressources et nom de la spec de modèle : Ces valeurs doivent spécifier l’emplacement de la ressource de spec de modèle que vous avez publiée précédemment. Vous pouvez utiliser des barres obliques (
/
) pour séparer l’ID d’abonnement, le nom du groupe de ressources et le nom du spec de modèle. Cette section du chemin d’accès du module n’est pas l’ID de ressource complet du spec de modèle. Il s’agit simplement de quelques-uns des composants de l’ID de ressource. - Version : la version du spec de modèle doit être incluse.
Notes
Vous ne pouvez pas utiliser de variables, de paramètres ou d’interpolation de chaînes quand vous spécifiez le chemin d’un module. Le chemin complet du spec de modèle doit être enregistré dans votre fichier Bicep.
Quand vous avez des paramètres à fournir au spec de modèle, utilisez la propriété params
:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
Le fichier de spec de modèle est téléchargé et copié (transpilé) dans votre modèle ARM JSON quand le fichier Bicep est généré. Normalement, cette opération se produit quand vous déployez votre fichier Bicep. Toutefois, vous pouvez également utiliser les outils Bicep pour transpiler explicitement en exécutant la commande bicep build
.