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 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 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 quels modèles s’appliquent à chaque propriété et si la propriété est requise.
R = Requis, O = Facultatif, - = Non utilisé
| Nom | Type | Description | 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 | - |
| generation | string | La génération de la machine virtuelle. | “V2” | - | O | O | O |
| trustedLaunch | boolean |
true pour activer 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 chargement du contenu du disque. Si cette option 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 | - |
| 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 | - |
| replicaCount | number | Le nombre de réplicas par défaut par région de la version de l’image de la galerie | 1 | - | - | - | 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 (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 | string or array | Le type de ressource(s) sous lequel publier les images. Spécifié comme un tableau ou une chaîne composé de ‘galleryImage’ et/ou ‘managedDisk’. | [“galleryImage”] | - | - | - | 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 | 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 |
| trustedLaunch | boolean |
true pour activer 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 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.1.0.0 - Ajout de la prise en charge de 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 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 de l’image de la galerie de calcul créée pour être utilisé par le modèle Machine.
Données personnalisées de l’image de démarrage
| Nom | Type | Description | 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 |
| trustedLaunch | boolean |
true pour activer 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.1.0.0 - Ajout de la prise en charge de 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 machine crée une machine virtuelle, une carte réseau et un disque géré. Ce modèle fonctionne avec ou sans la spécification du déploiement Image de démarrage.
Données personnalisées de la machine
| Nom | Type | Description | 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 |
| trustedLaunch | boolean |
true pour activer 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 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. | - | oui |
Modèle de machine
- 1.1.0.0 - Ajout de la prise en charge de 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’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 en cours de publication 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.
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 | 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é 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 |
| trustedLaunch | boolean |
true pour activer 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 de réplicas par défaut par région de la version de l’image de la galerie | 1 | 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 (telle que 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 chargement du contenu du disque. Si 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 de la prise en charge de Trusted Launch
- Ajout de la prise en charge du nombre de réplicas et des régions cibles 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.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-->