Plantillas de inicio
Esta sección contiene un conjunto completo de plantillas ARM que puedes usar con el conector de implementaciones de Azure. Puedes usar estas plantillas tal cual o modificarlas para satisfacer necesidades específicas.
Cada recurso creado por estas plantillas se etiqueta con el mismo conjunto de etiquetas. Estas etiquetas incluyen información útil sobre el contexto de la implementación, como el nombre del usuario que inició la tarea y el comentario que introdujo.
Las plantillas hacen un uso extensivo de datos personalizados en la configuración del conector. Los datos personalizados te permiten definir parámetros comunes como location, vmSize, generation y otros parámetros sin necesidad de modificar la plantilla.
La siguiente tabla enumera todas las propiedades de datos personalizados que usan estas plantillas. Especifica qué plantillas se aplican a cada propiedad y si la propiedad es obligatoria.
R = Obligatorio, O = Opcional, - = No usado
| Nombre | Tipo | Descripción | Predeterminado | Disco de caché | Imagen de arranque | Máquina | Imagen en capas |
|---|---|---|---|---|---|---|---|
location |
string |
La región donde se crean los recursos. | La misma región que el grupo de recursos de destino. | O | O | O | O |
gallery |
string |
El nombre de la galería de computación en la que crear imágenes. La galería debe estar en el grupo de recursos de destino. | - | - | R | - | R |
storageSku |
string |
El nombre de la SKU que usar para los discos administrados. | “StandardSSD_LRS” | O | - | O | - |
generation |
string |
La generación de la máquina virtual. | “V2” | - | O | O | O |
trustedLaunch |
boolean |
true para habilitar el inicio de confianza, false en caso contrario. Este debe ser el mismo valor para todos los tipos de implementación. |
false |
O | O | O | O |
diskAccessId |
string |
El ID de recurso del acceso al disco usado al cargar el contenido del disco. Si se especifica, el disco se crea con el acceso a la red pública deshabilitado. Para obtener más información, consulta la documentación de Azure. | null |
O | - | - | - |
vmSize |
string |
El tamaño de la VM que crear. | “Standard_D2s_v3” | - | - | O | - |
licenseType |
string |
El tipo de licencia local que aplicar a las máquinas virtuales creadas. | null |
- | - | O | - |
subnetId |
string |
El ID de recurso de la subred a la que adjuntar la tarjeta de red de la VM. | - | - | - | R | - |
replicaCount |
number |
El número predeterminado de réplicas por región de la versión de la imagen de la galería | 1 | - | - | - | O |
targetRegions |
array |
Las regiones de destino de la versión de la imagen de la galería. Esto se especifica como una matriz de cadenas de nombres de región y/o objetos TargetRegion. La matriz debe contener la región del disco de origen (que se especifica mediante los datos personalizados de location). |
La región especificada por los datos personalizados de location
|
- | - | - | O |
publishAs |
string o array
|
El tipo de recurso(s) para publicar imágenes. Especificado como una matriz o cadena que consta de ‘galleryImage’ y/o ‘managedDisk’. | [“galleryImage”] | - | - | - | O |
Ejemplo de datos personalizados:
{
"gallery": "MyGallery",
"subnetId": "/subscriptions/ab3d1259-f5a9-407f-bbdd-bfd5701e2e94/resourceGroups/PDGTPB/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/mysubnet"
}
<!--NeedCopy-->
Otro ejemplo de datos personalizados:
{
"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-->
Disco de caché
Crea un disco administrado.
Datos personalizados del disco de caché
| Nombre | Tipo | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|---|
location |
string |
La región en la que se crean los recursos. | La misma región que el grupo de recursos de destino | no |
storageSku |
string |
El nombre de la SKU que usar. | “StandardSSD_LRS” | no |
trustedLaunch |
boolean |
true para habilitar el inicio de confianza, false en caso contrario. Este debe ser el mismo valor para todos los tipos de implementación. |
false |
no |
diskAccessId |
string |
El ID de recurso del acceso al disco que usar al cargar el contenido del disco. Si se especifica, el disco se crea con el acceso a la red pública deshabilitado. | null |
no |
Plantilla de disco de caché
- 1.1.0.0 - Se agregó compatibilidad con el inicio de confianza
- 1.0.0.0 - Versión inicial
{
"$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-->
Imagen de arranque
La implementación de la imagen de arranque crea una imagen de galería y una versión de imagen en la galería especificada por los datos personalizados. Genera el ID de la versión de la imagen de la galería de computación creada para que la use la plantilla de Máquina.
Datos personalizados de la imagen de arranque
| Nombre | Tipo | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|---|
location |
string |
La región en la que se crean los recursos. | La misma región que el grupo de recursos de destino. | no |
generation |
string |
La generación de la máquina virtual usada en el disco. | “V2” | no |
trustedLaunch |
boolean |
true para habilitar el inicio de confianza, false en caso contrario. Este debe ser el mismo valor para todos los tipos de implementación. |
false |
no |
gallery |
string |
El nombre de la galería de computación en la que crear la imagen. La galería debe estar en el grupo de recursos de destino. | - | sí |
Plantilla de imagen de arranque
- 1.1.0.0 - Se agregó compatibilidad con el inicio de confianza
- 1.0.0.0 - Versión inicial
{
"$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-->
Máquina
La implementación de la máquina crea una máquina virtual, una NIC y un disco administrado. Esta plantilla funciona con o sin la especificación de la implementación de la imagen de arranque.
Datos personalizados de la máquina
| Nombre | Tipo | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|---|
location |
string |
La región en la que se crean los recursos. | La misma región que el grupo de recursos de destino. | no |
storageSku |
string |
El nombre de la SKU para el disco creado. | “StandardSSD_LRS” | no |
generation |
string |
La generación de la máquina virtual. | “V2” | no |
trustedLaunch |
boolean |
true para habilitar el inicio de confianza, false en caso contrario. Este debe ser el mismo valor para todos los tipos de implementación. |
false |
no |
secureBoot |
boolean |
true para habilitar el arranque seguro, false en caso contrario. Esto solo se aplica si trustedLaunch está establecido en true. |
true |
no |
vTpm |
boolean |
true para habilitar el vTPM, false en caso contrario. Esto solo se aplica si trustedLaunch está establecido en true. |
true |
no |
vmSize |
string |
El tamaño de la VM que crear. | “Standard_D2s_v3” | no |
licenseType |
string |
El tipo de licencia local que aplicar a la máquina virtual. | null |
no |
subnetId |
string |
El ID de recurso de la subred a la que adjuntar la NIC. | - | sí |
Plantilla de máquina
- 1.1.0.0 - Se agregó compatibilidad con el inicio de confianza
- 1.0.0.0 - Versión inicial
{
"$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-->
Imagen en capas
La implementación de la imagen en capas puede crear dos tipos de recursos: una versión de imagen de galería y/o un disco administrado. Ambos tipos de recursos se nombran usando el nombre de la plantilla de imagen de App Layering que se publica y su número de versión construido. El número de versión se construye usando los números principales y secundarios del nombre del disco de la plantilla de imagen de App Layering. Si el nombre del disco no tiene el formato de una versión numérica (número.número), se aplica 1.0 de forma predeterminada. El número de revisión es el número de versión de la plantilla de imagen de App Layering (el número de veces que se ha publicado). A la imagen de la galería se le asigna el nombre y a la versión de la imagen de la galería se le asigna el número de versión. Al disco administrado se le asigna el nombre con el número de versión adjunto.
La imagen de la galería y la versión se crean en la galería especificada por los datos personalizados. Cuando una imagen se publica varias veces, se agrega una nueva versión a la imagen de la galería de computación y la versión anterior permanece.
Datos personalizados de la imagen en capas
R = Obligatorio, O = Opcional, - = No usado
| Nombre | Tipo | Descripción | Predeterminado | Imagen de galería | Disco administrado |
|---|---|---|---|---|---|
publishAs |
string o array
|
El tipo de recurso(s) que crear. Especificado como una matriz o cadena que consta de ‘galleryImage’ y/o ‘managedDisk’. | [“galleryImage”] | O | R |
location |
string |
La región donde se crean los recursos. | La misma región que el grupo de recursos de destino. | O | O |
generation |
string |
La generación de la máquina virtual que admitirá la imagen. | “V2” | O | O |
trustedLaunch |
boolean |
true para habilitar el inicio de confianza, false en caso contrario. Este debe ser el mismo valor para todos los tipos de implementación. |
false |
O | O |
gallery |
string |
El nombre de la galería de computación en la que crear la imagen. La galería debe estar en el grupo de recursos de destino. | - | R | - |
replicaCount |
number |
El número predeterminado de réplicas por región de la versión de la imagen de la galería. | 1 | O | - |
targetRegions |
array |
Las regiones de destino de la versión de la imagen de la galería. Esto se especifica como una matriz de cadenas de nombres de región y/o objetos TargetRegion. La matriz debe contener la región del disco de origen (tal como se especifica en los datos personalizados de location). |
La región especificada por los datos personalizados de location. |
O | - |
storageSku |
string |
El nombre de la SKU que usar. | “StandardSSD_LRS” | - | O |
diskAccessId |
string |
El ID de recurso del acceso al disco que usar al cargar el contenido del disco. Si se especifica, el disco se crea con el acceso a la red pública deshabilitado. | null |
- | O |
Plantilla de imagen en capas
- 1.1.0.0
- Se agregó compatibilidad con el inicio de confianza
- Se agregó compatibilidad con el recuento de réplicas y la región de destino para las versiones de imagen de la galería
- Se agregó compatibilidad para publicar como disco administrado
- 1.0.0.0 - Versión inicial
{
"$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-->