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 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 indique quels modèles s’appliquent à chaque propriété et indique si la propriété est obligatoire.
R = Obligatoire, O = Facultatif, - = Non utilisé
Nom | Type | Description | Valeur par défaut | Disque cache | Image de démarrage | Machine | Image en couches |
---|---|---|---|---|---|---|---|
location | Chaîne | Région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | O | O | O | O |
gallery | Chaîne | Nom de la galerie de calcul dans laquelle créer des images. La galerie doit appartenir au groupe de ressources cible. | - | - | R | - | R |
storageSku | Chaîne | Nom du SKU à utiliser pour les disques gérés. | « SSD_LRS standard » | O | - | O | - |
generation | Chaîne | La génération d’une machine virtuelle. | “V2” | - | O | O | O |
trustedLaunch | booléen |
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 | Chaîne | 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 | Chaîne | Taille de la machine virtuelle à créer. | « Standard_D2S_V3 » | - | - | O | - |
licenseType | Chaîne | Type de licence locale à appliquer aux machines virtuelles créées. | null |
- | - | O | - |
subnetId | Chaîne | L’ID de ressource du sous-réseau auquel connecter la carte réseau de la machine virtuelle. | - | - | - | R | - |
replicaCount | nombre | Le nombre par défaut de répliques par région de la version de l’image de la galerie | 1 | - | - | - | O |
targetRegions | gamme | 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 | chaîne ou tableau | 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’ | [« Image de la galerie »] | - | - | - | 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",
"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 cache
Crée un disque géré.
Données personnalisées du disque cache
Nom | Type | Description | Valeur par défaut | Obligatoire |
---|---|---|---|---|
location | Chaîne | Région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible | non |
storageSku | Chaîne | Nom du SKU à utiliser. | « SSD_LRS standard » | non |
trustedLaunch | booléen |
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 | Chaîne | 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 | Type | Description | Valeur par défaut | Obligatoire |
---|---|---|---|---|
location | Chaîne | Région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | non |
generation | Chaîne | Génération de la machine virtuelle utilisée sur le disque. | “V2” | non |
trustedLaunch | booléen |
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 | Chaîne | 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 | Type | Description | Valeur par défaut | Obligatoire |
---|---|---|---|---|
location | Chaîne | Région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible. | non |
storageSku | Chaîne | Nom du SKU du disque créé. | « SSD_LRS standard » | non |
generation | Chaîne | La génération de la machine virtuelle. | “V2” | non |
trustedLaunch | booléen |
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 | booléen |
true pour activer Secure Boot, sinon false . Ceci n’est appliqué que si trustedLaunch est défini sur true . |
true |
non |
vTpm | booléen |
true pour activer le vTPM, sinon false . Ceci n’est appliqué que si trustedLaunch est défini sur true . |
true |
non |
vmSize | Chaîne | Taille de la machine virtuelle à créer. | « Standard_D2S_V3 » | non |
licenseType | Chaîne | Type de licence locale à appliquer à la machine virtuelle. | null |
non |
subnetId | Chaîne | 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 | Type | Description | Valeur par défaut | Image de la galerie | Disque géré |
---|---|---|---|---|---|
publishAs | chaîne ou tableau | 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’ | [« Image de la galerie »] | O | R |
location | Chaîne | Région dans laquelle les ressources sont créées. | Même région que le groupe de ressources cible | O | O |
generation | Chaîne | Génération de la machine virtuelle prise en charge par l’image. | “V2” | O | O |
trustedLaunch | booléen |
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 | Chaîne | Nom de la galerie de calcul dans laquelle créer l’image. La galerie doit appartenir au groupe de ressources cible. | - | R | - |
replicaCount | nombre | Le nombre par défaut de répliques par région de la version de l’image de la galerie | 1 | O | - |
targetRegions | gamme | 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 location données personnalisées). |
La région spécifiée par les données personnalisées location
|
O | - |
storageSku | Chaîne | Nom du SKU à utiliser. | « SSD_LRS standard » | - | O |
diskAccessId | Chaîne | 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-->