App Layering

Modèles de démarrage

Cette section contient un ensemble complet de modèles ARM pouvant être utilisés avec le connecteur Azure Deployments. Ces modèles peuvent être utilisés tels quels ou ils peuvent être 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 de balises. Ces balises contiennent des informations utiles sur le contexte du déploiement, telles que le nom de l’utilisateur qui a lancé la tâche et le commentaire qu’il a saisi.

Les modèles utilisent largement des données personnalisées dans la configuration du connecteur. Les données personnalisées permettent à l’utilisateur de définir des paramètres communs tels que locationvmSize, 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 indique quels modèles s’appliquent à chaque propriété et indique si la propriété est obligatoire.

R = Obligatoire, O = Facultatif, - = Non utilisé

Nom Description Valeur par défaut Disque cache Image de démarrage Machine Image en couches
Emplacement Région dans laquelle les ressources sont créées. Même région que le groupe de ressources cible. O O O O
gallery Nom de la galerie de calcul dans laquelle créer des images. La galerie doit appartenir au groupe de ressources cible. - - R - R
storageSku Nom du SKU à utiliser pour les disques gérés. StandardSSD_LRS O - O -
generation La génération d’une machine virtuelle. V2 - O O O
trustedLaunch true pour activer Trusted Launch, sinon false. Il doit s’agir de la même valeur pour tous les types de déploiement. false O O O O
diskAccessId L’ID de ressource de l’accès au disque utilisé lors du téléchargement du contenu du disque. Si cela est spécifié, 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 Taille de la machine virtuelle à créer. Standard_D2s_v3 - - O -
licenseType Type de licence locale à appliquer aux machines virtuelles créées. null - - O -
subnetId L’ID de ressource du sous-réseau auquel connecter la carte réseau de la machine virtuelle. - - - R -
replicaCount Le nombre par défaut de répliques par région de la version de l’image de la galerie 1 - - - O
targetRegions Les régions cibles de la version de l’image de la galerie. Ceci est spécifié sous la forme d’un tableau de chaînes de noms de régions et/ou d’objets TargetRegion. La baie doit contenir la région du disque source (qui est 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 Type de ressource (s) sous laquelle publier des images. Spécifié sous la forme d’un tableau ou d’une chaîne composée de ‘GalleryImage’ et/ou ‘ManagedDisk’ galleryImage - - - O

Exemples 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",
    "generation": "V1",
    "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"
}
<!--NeedCopy-->

Disque cache

Crée un disque géré.

Données personnalisées du disque cache

Nom Description Valeur par défaut Obligatoire
Emplacement Région dans laquelle les ressources sont créées. Même région que le groupe de ressources cible non
storageSku Nom du SKU à utiliser. StandardSSD_LRS non
trustedLaunch true pour activer Trusted Launch, sinon false. Il doit s’agir de la même valeur pour tous les types de déploiement. false non
diskAccessId 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 cache

  • 1.1.0.0 - Ajout du support pour Trusted Launch
  • 1.0.0.0 - Version initiale
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.1.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())]"
    },
    "resources": [
        {
            "type": "Microsoft.Compute/disks",
            "apiVersion": "2021-08-01",
            "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())]"
            }
        }
    ]
}
<!--NeedCopy-->

Image de démarrage

Le déploiement Boot Image 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 la galerie de calcul créée à utiliser par le modèle de machine .

Données personnalisées Boot Image

Nom Description Valeur par défaut Obligatoire
Emplacement Région dans laquelle les ressources sont créées. Même région que le groupe de ressources cible. non
generation Génération de la machine virtuelle utilisée sur le disque. V2 non
trustedLaunch true pour activer Trusted Launch, sinon false. Il doit s’agir de la même valeur pour tous les types de déploiement. false non
gallery Nom de la galerie de calcul dans laquelle créer l’image. La galerie doit appartenir au groupe de ressources cible. - oui

Modèle Boot Image

  • 1.1.0.0 - Ajout du support pour Trusted Launch
  • 1.0.0.0 - Version initiale
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.1.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')]",
        "trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]"
    },
    "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": "[if(variables('trustedLaunch'), createArray(createObject('name', 'SecurityType', 'value', 'TrustedLaunch')), null())]",
                "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 la machine crée une machine virtuelle, une carte réseau et un disque géré. Ce modèle fonctionne avec ou sans que le déploiement de Boot Image soit spécifié.

Données personnalisées de la machine

Nom Description Valeur par défaut Obligatoire
Emplacement Région dans laquelle les ressources sont créées. Même région que le groupe de ressources cible. non
storageSku Nom du SKU du disque créé. StandardSSD_LRS non
generation La génération de la machine virtuelle. V2 non
trustedLaunch true pour activer Trusted Launch, sinon false. Il doit s’agir de la même valeur pour tous les types de déploiement. false non
secureBoot true pour activer Secure Boot, sinon false. Ceci n’est appliqué que si trustedLaunchest défini sur true. true non
vTpm true pour activer le vTPM, sinon false. Ceci n’est appliqué que si trustedLaunchest défini sur true. true non
vmSize Taille de la machine virtuelle à créer. Standard_D2s_v3 non
licenseType Type de licence locale à appliquer à la machine virtuelle. null non
subnetId L’ID de ressource du sous-réseau auquel connecter la carte réseau. - oui

Modèle de machine

  • 1.1.0.0 - Ajout du support pour Trusted Launch
  • 1.0.0.0 - Version initiale
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.1.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('al-', 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'))]",
        "securityProfile": {
            "securityType": "TrustedLaunch",
            "uefiSettings": {
                "secureBootEnabled": "[variables('secureBoot')]",
                "vTpmEnabled": "[variables('vTpm')]"
            }
        }
    },
    "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": false,
                "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"
            }
        },
        {
            "type": "Microsoft.Compute/virtualMachines",
            "apiVersion": "2021-07-01",
            "name": "[variables('vmName')]",
            "location": "[variables('location')]",
            "dependsOn": [
                "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]",
                "[variables('diskId')]"
            ],
            "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())]",
                    "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": []
                },
                "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].', environment().portal, tenant().tenantId, resourceId('Microsoft.Compute/virtualMachines', variables('vmName')))]"
        }
    }
}
<!--NeedCopy-->

Image en couches

Le déploiement d’images 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 à l’aide du nom du modèle d’image App Layering en cours de publication et de son numéro de version construit. Le numéro de version est construit à l’aide de chiffres majeurs et mineurs à partir du nom de disque du modèle d’image App Layering. Si le nom du disque n’est pas formaté en version numérique (number.number), 1.0 est appliqué par défaut. Le numéro de patch est le numéro de version du modèle d’image App Layering (le nombre de fois qu’il a été publié). Un nom est attribué à l’image de la galerie et le numéro de version est attribué à la version de l’image de la galerie. Le nom du disque géré est ajouté au numéro de version.

L’image et la version de la galerie 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 est conservée.

Données personnalisées d’images en couches

R = Obligatoire, O = Facultatif, - = Non utilisé

Nom Description Valeur par défaut Image de la galerie Disque géré
publishAs Type de ressources à créer. Spécifié sous la forme d’un tableau ou d’une chaîne composée de ‘GalleryImage’ et/ou ‘ManagedDisk’ galleryImage O R
location Région dans laquelle les ressources sont créées. Même région que le groupe de ressources cible O O
generation Génération de la machine virtuelle prise en charge par l’image. V2 O O
trustedLaunch true pour activer Trusted Launch, sinon false. Il doit s’agir de la même valeur pour tous les types de déploiement. false O O
gallery Nom de la galerie de calcul dans laquelle créer l’image. La galerie doit appartenir au groupe de ressources cible. - R -
replicaCount Le nombre par défaut de répliques par région de la version de l’image de la galerie 1 O -
targetRegions Les régions cibles de la version de l’image de la galerie. Ceci est spécifié sous la forme d’un tableau de chaînes de noms de régions et/ou d’objets TargetRegion. La baie doit contenir la région du disque source (telle que spécifiée par les locationdonnées personnalisées). La région spécifiée par les données personnalisées location O -
storageSku Nom du SKU à utiliser. StandardSSD_LRS - O
diskAccessId L’ID de ressource de l’accès au disque à utiliser lors du téléchargement du contenu du disque. Si cela est spécifié, le disque est créé avec l’accès au réseau public désactivé. null - O

Modèle d’image en couches

  • 1.1.0.0
    • Ajout du support pour Trusted Launch
    • Ajout du nombre de répliques et de la prise en charge des régions cibles pour les versions d’images de la 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.1.0.0",
    "parameters": {
        "al": {
            "type": "object"
        }
    },
    "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": "[variables('custom').gallery]",
        "generation": "[if(contains(variables('custom'), 'generation'), variables('custom').generation, 'V2')]",
        "trustedLaunch": "[if(contains(variables('custom'), 'trustedLaunch'), variables('custom').trustedLaunch, false())]",
        "replicaCount": "[if(contains(variables('custom'), 'replicaCount'), variables('custom').replicaCount, 1)]",
        "targetRegions": "[if(contains(variables('custom'), 'targetRegions'), variables('custom').targetRegions, createArray(variables('location')))]",
        "diskName": "[format('{0}\_{1}-{2}-{3}', variables('name'), variables('major'), variables('minor'), parameters('al').context.item.version.number)]",
        "hasDiskAccess": "[contains(variables('custom'), 'diskAccessId')]",
        "storageSku": "[if(contains(variables('custom'), 'storageSku'), variables('custom').storageSku, 'StandardSSD_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()))))]"
    },
    "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": "[if(variables('trustedLaunch'), createArray(createObject('name', 'SecurityType', 'value', 'TrustedLaunch')), null())]",
                "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')]",
                            "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-->
Modèles de démarrage