Modèles de démarrage
Cette section contient un ensemble complet de modèles ARM qui peuvent être utilisés avec le connecteur de déploiements Azure. Ces modèles peuvent être utilisés tels quels ou modifiés pour répondre à des besoins spécifiques.
Chaque ressource créée par ces modèles est étiquetée avec le même ensemble d’étiquettes. Ces étiquettes incluent des informations utiles sur le contexte du déploiement, telles que le nom de l’utilisateur qui a démarré la tâche et le commentaire qu’il a saisi.
Les modèles utilisent largement les données personnalisées dans la configuration du connecteur. Les données personnalisées permettent à l’utilisateur de définir des paramètres courants tels que location, vmSize, generation et d’autres paramètres sans avoir à modifier le modèle.
Le tableau suivant répertorie toutes les propriétés de données personnalisées utilisées par ces modèles. Il spécifie les modèles auxquels chaque propriété s’applique et si la propriété est requise.
R = Requis, O = Facultatif, - = Non utilisé
| Nom | Type | Description | Valeur par défaut | Disque de cache | Image de démarrage | Machine | Image en couches |
|---|---|---|---|---|---|---|---|
| location | string | La région où les ressources sont créées. | Même région que le groupe de ressources cible. | O | O | O | O |
| gallery | string | Le nom de la galerie de calcul dans laquelle créer les images. La galerie doit se trouver dans le groupe de ressources cible. | - | - | R | - | R |
| storageSku | string | Le nom de la référence SKU à utiliser pour les disques gérés. | “StandardSSD_LRS” | O | - | O | - |
| NVMe | boolean |
true pour utiliser les contrôleurs de disque NVMe, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O | O | O |
| generation | string | La génération de la machine virtuelle. | “V2” | - | O | O | O |
| trustedLaunch | boolean |
true pour activer le lancement sécurisé (Trusted Launch), false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O | O | O |
| diskAccessId | string | L’ID de ressource de l’accès au disque utilisé lors du téléchargement du contenu du disque. Si cette valeur est spécifiée, le disque est créé avec l’accès au réseau public désactivé. Pour plus d’informations, consultez la documentation Azure. | null |
O | - | - | - |
| vmSize | string | La taille de la machine virtuelle à créer. | “Standard_D2s_v3” | - | - | O | - |
| prefix | string | Un préfixe à ajouter au nom des ressources créées par le déploiement de la machine. | “al-“ | - | - | O | - |
| licenseType | string | Le type de licence sur site à appliquer aux machines virtuelles créées. | null |
- | - | O | - |
| subnetId | string | L’ID de ressource du sous-réseau auquel attacher la carte réseau de la machine virtuelle. | - | - | - | R | - |
| acceleratedNetworking | boolean |
true pour activer la mise en réseau accélérée, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O | O | O |
| replicaCount | number | Le nombre par défaut de réplicas par région de la version de l’image de la galerie. | 1 | - | - | - | O |
| imageStorageAccountType | string | Spécifie le type de compte de stockage à utiliser pour stocker l’image. | “Standard_LRS” | - | - | - | O |
| targetRegions | array | Les régions cibles de la version de l’image de la galerie. Ceci est spécifié comme un tableau de chaînes de noms de région et/ou d’objets TargetRegion. Le tableau doit contenir la région du disque source (spécifiée par les données personnalisées location). |
La région spécifiée par les données personnalisées location. |
- | - | - | O |
| publishAs | string or array | Le type de ressource(s) sous lequel publier les images. Spécifié comme un tableau ou une chaîne composée de ‘galleryImage’ et/ou ‘managedDisk’. | [“galleryImage”] | - | - | - | O |
| diskNameFormat | string | Contrôle le nom des images publiées en tant que disques gérés. “version” pour ajouter la version au nom de l’image, “timestamp” pour ajouter l’heure de publication. | “version” | - | - | - | O |
Exemple de données personnalisées :
{
"gallery": "MyGallery",
"subnetId": "/subscriptions/ab3d1259-f5a9-407f-bbdd-bfd5701e2e94/resourceGroups/PDGTPB/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/mysubnet"
}
<!--NeedCopy-->
Autre exemple de données personnalisées :
{
"location": "eastus",
"gallery": "MyGallery",
"storageSku": "Premium_LRS",
"trustedLaunch": true,
"diskAccessId": "/subscriptions/ab3d1259-f5a9-407f-bbdd-bfd5701e2e94/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/diskAccesses/MyDiskAccess",
"vmSize": "Standard_D4s_v3",
"subnetId": "/subscriptions/ab3d1259-f5a9-407f-bbdd-bfd5701e2e94/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/mysubnet",
"replicaCount": 2,
"targetRegions": [
"eastus",
{
"name": "eastus2",
"regionalReplicaCount": 5,
"storageAccountType": "Premium_LRS"
},
"westus"
]
}
<!--NeedCopy-->
Disque de cache
Crée un disque géré.
Données personnalisées du disque de cache
| Nom | Type | Description | Valeur par défaut | Requis |
|---|---|---|---|---|
| location | string | La région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | non |
| storageSku | string | Le nom de la référence SKU à utiliser. | “StandardSSD_LRS” | non |
| NVMe | boolean |
true pour activer les contrôleurs de disque NVMe, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| acceleratedNetworking | boolean |
true pour activer la mise en réseau accélérée, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| trustedLaunch | boolean |
true pour activer le lancement sécurisé (Trusted Launch), false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| diskAccessId | string | L’ID de ressource de l’accès au disque à utiliser lors du téléchargement du contenu du disque. Si spécifié, le disque est créé avec l’accès au réseau public désactivé. | null |
non |
Modèle de disque de cache
- 1.2.0.0 - Ajout de la prise en charge de la mise en réseau accélérée et des contrôleurs de disque NVMe
- 1.1.0.0 - Ajout de la prise en charge du lancement sécurisé (Trusted Launch)
- 1.0.0.0 - Version initiale
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.2.0.0",
"parameters": {
"al": {
"type": "object"
}
},
"variables": {
"custom": "[parameters('al').context.config.custom]",
"location": "[if(contains(variables('custom'), 'location'), variables('custom').location, resourceGroup().location)]",
"name": "[concat(parameters('al').context.item.name,'-', parameters('al').context.item.id)]",
"tags": {
"alTaskId": "[parameters('al').context.taskId]",
"alUser": "[parameters('al').context.user]",
"alComment": "[parameters('al').context.comment]",
"alItemType": "[parameters('al').context.item.type]",
"alItemId": "[parameters('al').context.item.id]",
"alItemName": "[parameters('al').context.item.name]",
"alItemVersion": "[parameters('al').context.item.version.name]",
"alConfigId": "[parameters('al').context.config.id]",
"alConfigName": "[parameters('al').context.config.name]"
},
"hasDiskAccess": "[contains(variables('custom'), 'diskAccessId')]",
"storageSku": "[if(contains(variables('custom'), 'storageSku'), variables('custom').storageSku, 'StandardSSD_LRS')]",
"trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]",
"acceleratedNetworking": "[if(contains(variables('custom'), 'acceleratedNetworking'), variables('custom').acceleratedNetworking, false())]",
"NVMe": "[if(contains(variables('custom'), 'NVMe'), variables('custom').NVMe, false())]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2024-03-02",
"name": "[variables('name')]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"sku": {
"name": "[variables('storageSku')]"
},
"properties": {
"creationData": {
"createOption": "Upload",
"uploadSizeBytes": "[parameters('al').input.uploadSize]"
},
"incremental": "false",
"diskAccessId": "[if(variables('hasDiskAccess'), variables('custom').diskAccessId, null())]",
"networkAccessPolicy": "[if(variables('hasDiskAccess'), 'AllowPrivate', 'AllowAll')]",
"publicNetworkAccess": "[if(variables('hasDiskAccess'), 'Disabled', 'Enabled')]",
"securityProfile": "[if(variables('trustedLaunch'), createObject('securityType', 'TrustedLaunch'), null())]",
"supportedCapabilities": {
"diskControllerTypes": "[if(variables('NVMe'), 'NVMe, SCSI', 'SCSI')]",
"acceleratedNetwork": "[variables('acceleratedNetworking')]"
}
}
}
]
}
<!--NeedCopy-->
Image de démarrage
Le déploiement d’image de démarrage crée une image de galerie et une version d’image dans la galerie spécifiée par les données personnalisées. Il génère l’ID de la version d’image de galerie de calcul créée pour être utilisée par le modèle Machine.
Données personnalisées de l’image de démarrage
| Nom | Type | Description | Valeur par défaut | Requis |
|---|---|---|---|---|
| location | string | La région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | non |
| generation | string | La génération de la machine virtuelle utilisée dans le disque. | “V2” | non |
| NVMe | boolean |
true pour activer les contrôleurs de disque NVMe, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| acceleratedNetworking | boolean |
true pour activer la mise en réseau accélérée, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| trustedLaunch | boolean |
true pour activer le lancement sécurisé (Trusted Launch), false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| gallery | string | Le nom de la galerie de calcul dans laquelle créer l’image. La galerie doit se trouver dans le groupe de ressources cible. | - | oui |
Modèle d’image de démarrage
- 1.2.0.0 - Ajout de la prise en charge de la mise en réseau accélérée et des contrôleurs de disque NVMe
- 1.1.0.0 - Ajout de la prise en charge du lancement sécurisé (Trusted Launch)
- 1.0.0.0 - Version initiale
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.2.0.0",
"parameters": {
"al": {
"type": "object"
}
},
"variables": {
"custom": "[parameters('al').context.config.custom]",
"location": "[if(contains(variables('custom'), 'location'), variables('custom').location, resourceGroup().location)]",
"tags": {
"alTaskId": "[parameters('al').context.taskId]",
"alUser": "[parameters('al').context.user]",
"alComment": "[parameters('al').context.comment]",
"alItemType": "[parameters('al').context.item.type]",
"alItemId": "[parameters('al').context.item.id]",
"alItemName": "[parameters('al').context.item.name]",
"alItemVersion": "[parameters('al').context.item.version.name]",
"alConfigId": "[parameters('al').context.config.id]",
"alConfigName": "[parameters('al').context.config.name]"
},
"name": "[concat(parameters('al').context.item.name, '.', replace(parameters('al').context.config.id, '-', ''), '.', parameters('al').context.item.id)]",
"version": "[parameters('al').context.item.version.name]",
"galleryName": "[variables('custom').gallery]",
"generation": "[if(contains(variables('custom'), 'generation'), variables('custom').generation, 'V2')]",
"acceleratedNetworking": "[if(contains(variables('custom'), 'acceleratedNetworking'), variables('custom').acceleratedNetworking, false())]",
"NVMe": "[if(contains(variables('custom'), 'NVMe'), variables('custom').NVMe, false())]",
"trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]",
"possibleFeatures": [
{
"include": "[variables('trustedLaunch')]",
"feature": {
"name": "SecurityType",
"value": "TrustedLaunch"
}
},
{
"include": "[variables('acceleratedNetworking')]",
"feature": {
"name": "IsAcceleratedNetworkSupported",
"value": "True"
}
},
{
"include": "[variables('NVMe')]",
"feature": {
"name": "DiskControllerTypes",
"value": "NVMe, SCSI"
}
}
]
},
"resources": [
{
"type": "Microsoft.Compute/galleries/images",
"name": "[concat(variables('galleryName'), '/', variables('name'))]",
"apiVersion": "2021-07-01",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"properties": {
"description": "[parameters('al').context.item.description]",
"features": "[map(filter(variables('possibleFeatures'), lambda('x', lambdaVariables('x').include)), lambda('x', lambdaVariables('x').feature))]",
"hyperVGeneration": "[variables('generation')]",
"osType": "Windows",
"osState": "Specialized",
"endOfLifeDate": "2030-01-01T00:00:00Z",
"identifier": {
"publisher": "Citrix",
"offer": "[parameters('al').context.config.id]",
"sku": "[parameters('al').context.item.id]"
}
},
"resources": [
{
"type": "versions",
"apiVersion": "2021-07-01",
"name": "[variables('version')]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Compute/galleries/images', variables('galleryName'), variables('name'))]"
],
"tags": "[variables('tags')]",
"properties": {
"publishingProfile": {
"replicaCount": 1,
"targetRegions": [
{
"name": "[variables('location')]"
}
]
},
"storageProfile": {
"osDiskImage": {
"source": {
"id": "[parameters('al').input.source.diskId]"
}
}
}
}
}
]
}
],
"outputs": {
"id": {
"type": "string",
"value": "[resourceId('Microsoft.Compute/galleries/images/versions', variables('galleryName'), variables('name'), variables('version'))]"
}
}
}
<!--NeedCopy-->
Machine
Le déploiement de machine crée une machine virtuelle, une carte réseau et un disque géré. Ce modèle fonctionne que le déploiement d’image de démarrage soit spécifié ou non.
Données personnalisées de la machine
| Nom | Type | Description | Valeur par défaut | Requis |
|---|---|---|---|---|
| location | string | La région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | non |
| storageSku | string | Le nom de la référence SKU pour le disque créé. | “StandardSSD_LRS” | non |
| generation | string | La génération de la machine virtuelle. | “V2” | non |
| NVMe | boolean |
true pour utiliser les contrôleurs de disque NVMe, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| acceleratedNetworking | boolean |
true pour activer la mise en réseau accélérée, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| trustedLaunch | boolean |
true pour activer le lancement sécurisé (Trusted Launch), false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
non |
| secureBoot | boolean |
true pour activer le démarrage sécurisé (Secure Boot), false sinon. Ceci n’est appliqué que si trustedLaunch est défini sur true. |
true |
non |
| vTpm | boolean |
true pour activer le vTPM, false sinon. Ceci n’est appliqué que si trustedLaunch est défini sur true. |
true |
non |
| vmSize | string | La taille de la machine virtuelle à créer. | “Standard_D2s_v3” | non |
| licenseType | string | Le type de licence sur site à appliquer à la machine virtuelle. | null |
non |
| subnetId | string | L’ID de ressource du sous-réseau auquel attacher la carte réseau de la machine virtuelle. | - | oui |
| prefix | string | Un préfixe à ajouter au nom des ressources créées. | “al-“ | non |
Modèle de machine
- 1.2.0.0
- Ajout de la prise en charge de la mise en réseau accélérée
- Ajout de la prise en charge des contrôleurs de disque NVMe
- Ajout de la prise en charge de l’exportation IPS
- Ajout de la possibilité de personnaliser le préfixe ajouté aux noms de ressources
- Ajout de l’adresse IP au message affiché dans la sous-tâche App Layering
- Accès réseau au disque du système d’exploitation désactivé
- 1.1.0.0 - Ajout de la prise en charge du lancement sécurisé (Trusted Launch)
- 1.0.0.0 - Version initiale
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.2.0.0",
"parameters": {
"al": {
"type": "object"
}
},
"variables": {
"custom": "[parameters('al').context.config.custom]",
"location": "[if(contains(variables('custom'), 'location'), variables('custom').location, resourceGroup().location)]",
"prefix": "[if(contains(variables('custom'), 'prefix'), variables('custom').prefix, 'al-')]",
"name": "[concat(variables('prefix'), parameters('al').context.taskId)]",
"vmName": "[concat(variables('name'), '-vm')]",
"nicName": "[concat(variables('name'), '-nic')]",
"diskName": "[concat(variables('name'), '-disk')]",
"diskId": "[resourceId('Microsoft.Compute/disks', variables('diskName'))]",
"tags": {
"alTaskId": "[parameters('al').context.taskId]",
"alUser": "[parameters('al').context.user]",
"alComment": "[parameters('al').context.comment]",
"alItemType": "[parameters('al').context.item.type]",
"alItemId": "[parameters('al').context.item.id]",
"alItemName": "[parameters('al').context.item.name]",
"alItemVersion": "[parameters('al').context.item.version.name]",
"alConfigId": "[parameters('al').context.config.id]",
"alConfigName": "[parameters('al').context.config.name]"
},
"source": "[parameters('al').input.disk.image]",
"isFromImage": "[not(contains(variables('source'), 'diskId'))]",
"generation": "[if(contains(variables('custom'), 'generation'), variables('custom').generation, 'V2')]",
"vmSize": "[if(contains(variables('custom'), 'vmSize'), variables('custom').vmSize, 'Standard_D2s_v3')]",
"storageSku": "[if(contains(variables('custom'), 'storageSku'), variables('custom').storageSku, 'StandardSSD_LRS')]",
"trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]",
"secureBoot": "[if(contains(variables('custom'), 'secureBoot'), variables('custom').secureBoot, variables('trustedLaunch'))]",
"vTpm": "[if(contains(variables('custom'), 'vTpm'), variables('custom').vTpm, variables('trustedLaunch'))]",
"acceleratedNetworking": "[if(contains(variables('custom'), 'acceleratedNetworking'), variables('custom').acceleratedNetworking, false())]",
"NVMe": "[if(contains(variables('custom'), 'NVMe'), variables('custom').NVMe, false())]",
"securityProfile": {
"securityType": "TrustedLaunch",
"uefiSettings": {
"secureBootEnabled": "[variables('secureBoot')]",
"vTpmEnabled": "[variables('vTpm')]"
}
},
"dataDiskTemplate": {
"createOption": "Attach",
"deleteOption": "Delete",
"managedDisk": {
"id": "ToBeReplaced"
}
},
"dataDiskName": "[concat(variables('name'), '-disk{0}')]",
"additionalDisks": "[if(contains(parameters('al').input, 'additionalDisks'), parameters('al').input.additionalDisks, createArray())]",
"additionalDiskIds": "[map(variables('additionalDisks'), lambda('x', lambdaVariables('x').diskId))]",
"dataDiskIds": "[map(variables('additionalDiskIds'), lambda('x', 'i', resourceId('Microsoft.Compute/disks',format(variables('dataDiskName'), lambdaVariables('i')))))]"
},
"resources": [
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2020-11-01",
"name": "[variables('nicName')]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[variables('custom').subnetId]"
},
"primary": true,
"privateIPAddressVersion": "IPv4"
}
}
],
"dnsSettings": {
"dnsServers": []
},
"enableAcceleratedNetworking": "[variables('acceleratedNetworking')]",
"enableIPForwarding": false
}
},
{
"condition": "[not(variables('isFromImage'))]",
"type": "Microsoft.Compute/disks",
"apiVersion": "2021-08-01",
"name": "[variables('diskName')]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"sku": {
"name": "[variables('storageSku')]"
},
"properties": {
"osType": "Windows",
"hyperVGeneration": "[variables('generation')]",
"creationData": {
"createOption": "Copy",
"sourceResourceId": "[variables('source').diskId]"
},
"diskSizeGB": "[parameters('al').input.disk.size]",
"networkAccessPolicy": "DenyAll",
"publicNetworkAccess": "Disabled",
"supportedCapabilities": {
"acceleratedNetwork": "[variables('acceleratedNetworking')]"
}
}
},
{
"copy": {
"name": "data-disk-loop",
"count": "[length(variables('additionalDiskIds'))]",
"mode": "Parallel"
},
"type": "Microsoft.Compute/disks",
"apiVersion": "2021-08-01",
"name": "[format(variables('dataDiskName'), copyIndex())]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"sku": {
"name": "[variables('storageSku')]"
},
"properties": {
"creationData": {
"createOption": "Copy",
"sourceResourceId": "[variables('additionalDiskIds')[copyIndex()]]"
},
"networkAccessPolicy": "DenyAll",
"publicNetworkAccess": "Disabled"
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2022-08-01",
"name": "[variables('vmName')]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]",
"[variables('diskId')]",
"data-disk-loop"
],
"tags": "[variables('tags')]",
"properties": {
"hardwareProfile": {
"vmSize": "[variables('vmSize')]"
},
"securityProfile": "[if(variables('trustedLaunch'), variables('securityProfile'), null())]",
"storageProfile": {
"imageReference": "[if(variables('isFromImage'), createObject('id', variables('source').id), null())]",
"diskControllerType": "[if(variables('NVMe'), 'NVMe', null())]",
"osDisk": {
"osType": "Windows",
"createOption": "[if(variables('isFromImage'), 'FromImage', 'Attach')]",
"caching": "ReadWrite",
"deleteOption": "Delete",
"diskSizeGB": "[parameters('al').input.disk.size]",
"managedDisk": "[if(variables('isFromImage'), createObject('storageAccountType', variables('storageSku')), createObject('id', variables('diskId')))]"
},
"dataDisks": "[map(variables('dataDiskIds'), lambda('x', 'i', union(variables('dataDiskTemplate'), createObject('lun', lambdaVariables('i'), 'managedDisk', createObject('id', lambdaVariables('x'))))))]"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true
}
},
"licenseType": "[if(contains(variables('custom'), 'licenseType'), variables('custom').licenseType, null())]",
"userData": "[parameters('al').input.vm.userData]"
}
}
],
"outputs": {
"diskId": {
"type": "string",
"value": "[reference(variables('vmName')).storageProfile.osDisk.managedDisk.id]"
},
"message": {
"type": "string",
"value": "[format('See [link=\"{0}/#@{1}/resource/{2}\"]{2}[/link]. IP Address: {3}', environment().portal, tenant().tenantId, resourceId('Microsoft.Compute/virtualMachines', variables('vmName')), reference(variables('nicName')).ipConfigurations[0].properties.privateIPAddress)]"
}
}
}
<!--NeedCopy-->
Image en couches
Le déploiement d’image en couches peut créer deux types de ressources : une version d’image de galerie et/ou un disque géré. Les deux types de ressources sont nommés en utilisant le nom du modèle d’image App Layering publié et son numéro de version construit. Le numéro de version est construit en utilisant les numéros majeur et mineur du nom du disque du modèle d’image App Layering. Si le nom du disque n’est pas formaté comme une version numérique (nombre.nombre), alors 1.0 est appliqué par défaut. Le numéro de correctif est le numéro de version du modèle d’image App Layering (le nombre de fois qu’il a été publié). L’image de la galerie se voit attribuer le nom et la version de l’image de la galerie se voit attribuer le numéro de version. Le disque géré se voit attribuer le nom auquel est ajouté le numéro de version ou l’horodatage actuel, selon le diskNameFormat.
L’image de la galerie et sa version sont créées dans la galerie spécifiée par les données personnalisées. Lorsqu’une image est publiée plusieurs fois, une nouvelle version est ajoutée à l’image de la galerie de calcul, et l’ancienne version reste.
Données personnalisées de l’image en couches
R = Requis, O = Facultatif, - = Non utilisé
| Nom | Type | Description | Valeur par défaut | Image de galerie | Disque géré |
|---|---|---|---|---|---|
| publishAs | string or array | Le type de ressource(s) à créer. Spécifié comme un tableau ou une chaîne composée de ‘galleryImage’ et/ou ‘managedDisk’. | [“galleryImage”] | O | R |
| location | string | La région où les ressources sont créées. | Même région que le groupe de ressources cible. | O | O |
| generation | string | La génération de la machine virtuelle que l’image prendra en charge. | “V2” | O | O |
| NVMe | boolean |
true pour activer les contrôleurs de disque NVMe, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O |
| acceleratedNetworking | boolean |
true pour activer la mise en réseau accélérée, false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O |
| trustedLaunch | boolean |
true pour activer le lancement sécurisé (Trusted Launch), false sinon. Cette valeur doit être la même pour tous les types de déploiement. |
false |
O | O |
| gallery | string | Le nom de la galerie de calcul dans laquelle créer l’image. La galerie doit se trouver dans le groupe de ressources cible. | - | R | - |
| replicaCount | number | Le nombre par défaut de réplicas par région de la version de l’image de la galerie. | 1 | O | - |
| imageStorageAccountType | string | Spécifie le type de compte de stockage à utiliser pour stocker l’image. | “Standard_LRS” | O | - |
| targetRegions | array | Les régions cibles de la version de l’image de la galerie. Ceci est spécifié comme un tableau de chaînes de noms de région et/ou d’objets TargetRegion. Le tableau doit contenir la région du disque source (spécifiée par les données personnalisées location). |
La région spécifiée par les données personnalisées location. |
O | - |
| storageSku | string | Le nom de la référence SKU à utiliser. | “StandardSSD_LRS” | - | O |
| diskAccessId | string | L’ID de ressource de l’accès au disque à utiliser lors du téléchargement du contenu du disque. Si spécifié, le disque est créé avec l’accès au réseau public désactivé. | null |
- | O |
| diskNameFormat | string | Contrôle le nom des images publiées en tant que disques gérés. “version” pour ajouter la version au nom de l’image, “timestamp” pour ajouter l’heure de publication. | “version” | - | O |
Modèle d’image en couches
- 1.2.0.0
- Ajout de la prise en charge de la mise en réseau accélérée
- Ajout de la prise en charge des contrôleurs de disque NVMe
- Ajout de la possibilité de spécifier le type de compte de stockage des versions d’image de galerie
- Ajout de l’option de nommer les disques gérés en utilisant l’heure de publication plutôt que la version de l’image (similaire à la dénomination héritée)
- Correction d’un bug qui rendait
galleryNameobligatoire même en l’absence de publication en tant que version d’image de galerie
- 1.1.0.0
- Ajout de la prise en charge du lancement sécurisé (Trusted Launch)
- Ajout de la prise en charge du nombre de réplicas et de la région cible pour les versions d’image de galerie
- Ajout de la prise en charge de la publication en tant que disque géré
- 1.0.0.0 - Version initiale
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.2.0.0",
"parameters": {
"al": {
"type": "object"
},
"timestamp": {
"type": "string",
"defaultValue": "[utcNow('yyyy-MM-dd_HH-mm-ss')]"
}
},
"variables": {
"invalidChars": [ " ", "(", ")", "[[", "]", "{", "}", "!", "@", "#", "$", "%", "^", "&", "*", "+", "/", "\\", "'", "\"", "|", "`", "~", "<", ">", ",", "?", "*" ],
"numericChars": [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ],
"custom": "[parameters('al').context.config.custom]",
"location": "[if(contains(variables('custom'), 'location'), variables('custom').location, resourceGroup().location)]",
"name": "[join(split(parameters('al').context.item.name, variables('invalidChars')), '_')]",
"tags": {
"alTaskId": "[parameters('al').context.taskId]",
"alUser": "[parameters('al').context.user]",
"alComment": "[parameters('al').context.comment]",
"alItemType": "[parameters('al').context.item.type]",
"alItemId": "[parameters('al').context.item.id]",
"alItemName": "[parameters('al').context.item.name]",
"alItemVersion": "[parameters('al').context.item.version.name]",
"alConfigId": "[parameters('al').context.config.id]",
"alConfigName": "[parameters('al').context.config.name]"
},
"splitVer": "[split(parameters('al').input.diskName, '.')]",
"major": "[if(equals(0, length(join(split(variables('splitVer')[0], variables('numericChars')), ''))), variables('splitVer')[0], '1')]",
"minor": "[if(greater(length(variables('splitVer')), 1), if(equals(0, length(join(split(variables('splitVer')[1], variables('numericChars')), ''))), variables('splitVer')[1], '0'), '0')]",
"version": "[format('{0}.{1}.{2}', variables('major'), variables('minor'), parameters('al').context.item.version.number)]",
"galleryName": "[if(contains(variables('custom'), 'gallery'), variables('custom').gallery, 'galleryName.required.in.custom.data')]",
"generation": "[if(contains(variables('custom'), 'generation'), variables('custom').generation, 'V2')]",
"trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]",
"acceleratedNetworking": "[if(contains(variables('custom'), 'acceleratedNetworking'), variables('custom').acceleratedNetworking, false())]",
"NVMe": "[if(contains(variables('custom'), 'NVMe'), variables('custom').NVMe, false())]",
"replicaCount": "[if(contains(variables('custom'), 'replicaCount'), variables('custom').replicaCount, 1)]",
"targetRegions": "[if(contains(variables('custom'), 'targetRegions'), variables('custom').targetRegions, createArray(variables('location')))]",
"diskNames": {
"version": "[format('{0}_{1}-{2}-{3}', variables('name'), variables('major'), variables('minor'), parameters('al').context.item.version.number)]",
"timestamp": "[format('{0}_{1}', variables('name'), parameters('timestamp'))]"
},
"diskName": "[variables('diskNames')[coalesce(tryGet(variables('custom'), 'diskNameFormat'), 'version')]]",
"hasDiskAccess": "[contains(variables('custom'), 'diskAccessId')]",
"storageSku": "[if(contains(variables('custom'), 'storageSku'), variables('custom').storageSku, 'StandardSSD_LRS')]",
"imageStorageAccountType": "[coalesce(tryGet(variables('custom'), 'imageStorageAccountType'), 'Standard_LRS')]",
"publishAs": "[if(contains(variables('custom'), 'publishAs'), variables('custom').publishAs, createArray('galleryImage'))]",
"galleryLink": "[format('[link=\"{0}/#@{1}/resource/{2}\"]{2}[/link].', environment().portal, tenant().tenantId, resourceId('Microsoft.Compute/galleries/images/versions', variables('galleryName'), variables('name'), variables('version')))]",
"diskLink": "[format('[link=\"{0}/#@{1}/resource/{2}\"]{2}[/link].', environment().portal, tenant().tenantId, resourceId('Microsoft.Compute/disks', variables('diskName')))]",
"outputLinks": "[filter(createArray(if(contains(variables('publishAs'), 'galleryImage'), variables('galleryLink'), null()), if(contains(variables('publishAs'), 'managedDisk'), variables('diskLink'), null())), lambda('link', not(equals(lambdaVariables('link'), null()))))]",
"possibleFeatures": [
{
"include": "[variables('trustedLaunch')]",
"feature": {
"name": "SecurityType",
"value": "TrustedLaunch"
}
},
{
"include": "[variables('acceleratedNetworking')]",
"feature": {
"name": "IsAcceleratedNetworkSupported",
"value": "True"
}
},
{
"include": "[variables('NVMe')]",
"feature": {
"name": "DiskControllerTypes",
"value": "NVMe, SCSI"
}
}
]
},
"resources": [
{
"condition": "[contains(variables('publishAs'), 'galleryImage')]",
"type": "Microsoft.Compute/galleries/images",
"name": "[format('{0}/{1}', variables('galleryName'), variables('name'))]",
"apiVersion": "2021-07-01",
"location": "[variables('location')]",
"properties": {
"description": "[parameters('al').context.item.description]",
"features": "[map(filter(variables('possibleFeatures'), lambda('x', lambdaVariables('x').include)), lambda('x', lambdaVariables('x').feature))]",
"hyperVGeneration": "[variables('generation')]",
"osType": "Windows",
"osState": "Specialized",
"endOfLifeDate": "2030-01-01T00:00:00Z",
"identifier": {
"publisher": "AppLayering",
"offer": "[variables('name')]",
"sku": "[variables('generation')]"
}
},
"tags": "[variables('tags')]",
"resources": [
{
"condition": "[contains(variables('publishAs'), 'galleryImage')]",
"type": "versions",
"apiVersion": "2022-03-03",
"name": "[variables('version')]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Compute/galleries/images', variables('galleryName'), variables('name'))]"
],
"tags": "[variables('tags')]",
"properties": {
"publishingProfile": {
"replicaCount": "[variables('replicaCount')]",
"storageAccountType": "[variables('imageStorageAccountType')]",
"targetRegions": "[map(variables('targetRegions'), lambda('item', if(contains(lambdaVariables('item'), 'name'), lambdaVariables('item'), createObject('name', lambdaVariables('item')))))]"
},
"storageProfile": {
"osDiskImage": {
"source": {
"id": "[parameters('al').input.source.diskId]"
}
}
}
}
}
]
},
{
"condition": "[contains(variables('publishAs'), 'managedDisk')]",
"type": "Microsoft.Compute/disks",
"apiVersion": "2021-08-01",
"name": "[variables('diskName')]",
"location": "[variables('location')]",
"tags": "[variables('tags')]",
"sku": {
"name": "[variables('storageSku')]"
},
"properties": {
"osType": "Windows",
"hyperVGeneration": "[variables('generation')]",
"creationData": {
"createOption": "Copy",
"sourceResourceId": "[parameters('al').input.source.diskId]"
},
"diskAccessId": "[if(variables('hasDiskAccess'), variables('custom').diskAccessId, null())]",
"networkAccessPolicy": "[if(variables('hasDiskAccess'), 'AllowPrivate', 'AllowAll')]",
"publicNetworkAccess": "[if(variables('hasDiskAccess'), 'Disabled', 'Enabled')]"
}
}
],
"outputs": {
"message": {
"type": "string",
"value": "[if(empty(variables('outputLinks')), null(), format('See {0}.', join(variables('outputLinks'), ' and ')))]"
}
}
}
<!--NeedCopy-->