这篇文章已经过机器翻译.放弃
入门模板
本节包含一整套可用于 Azure 部署连接器的 ARM 模板。这些模板可以按原样使用,也可以对其进行修改以满足特定需求。
这些模板创建的每个资源都使用相同的标签集进行标记。这些标签包含有关部署上下文的有用信息,例如启动任务的用户的姓名和他们输入的评论。
这些模板在 连接器配置中广泛使用了自定义数据。自定义数据允许用户定义常用参数,例如 location
、vmSize
、generation
和其他参数,而无需修改模板。
下表列出了这些模板使用的所有自定义数据属性。它指定了哪些模板适用于每个属性以及该属性是否为必填属性。
R = 必填项,O = 可选,-= 未使用
名称 | 类型 | 说明 | 默认值 | 缓存磁盘 | 引导映像 | 计算机 | 分层映像 |
---|---|---|---|---|---|---|---|
location | 字符串 | 创建资源的区域。 | 与目标资源组相同的区域。 | O | O | O | O |
gallery | 字符串 | 要在其中创建映像的计算库的名称。库必须位于目标资源组中。 | - | - | R | - | R |
storageSku | 字符串 | 用于托管磁盘的 SKU 的名称。 | “StandardSSD_LRS” | O | - | O | - |
generation | 字符串 | 虚拟机的生成。 | “V2” | - | O | O | O |
trustedLaunch | 布尔值 |
true 以启用“受信任启动”,否则为 false 。 对于所有部署类型,此值必须相同。 |
false |
O | O | O | O |
diskAccessId | 字符串 | 上载磁盘内容时使用的磁盘访问权限的资源 ID。如果指定了此选项,则在禁用公共网络访问权限的情况下创建磁盘。有关更多信息,请参阅 Azure 文档。 | null |
O | - | - | - |
vmSize | 字符串 | 要创建的 VM 的大小。 | “Standard_D2s_v3” | - | - | O | - |
licenseType | 字符串 | 适用于已创建虚拟机的本地许可证类型。 | null |
- | - | O | - |
subnetId | 字符串 | 连接虚拟机网卡的子网的资源 ID。 | - | - | - | R | - |
replicaCount | 数值 | 库映像版本的每个区域的默认副本数量 | 1 | - | - | - | O |
targetRegions | 数组 | 库映像版本的目标区域。这被指定为区域名称字符串和/或 TargetRegion 对象的数组。该数组必须包含源磁盘的区域(由 location 自定义数据指定)。 |
location 自定义数据指定的区域 |
- | - | - | O |
publishAs | 字符串或数组 | 发布映像的资源类型。指定为由“galleryImage”和/或“managedDisk”组成的数组或字符串 | [“galleryImage”] | - | - | - | O |
自定义数据示例:
{ "gallery": "MyGallery", "subnetId": "/subscriptions/ab3d1259-f5a9-407f-bbdd-bfd5701e2e94/resourceGroups/PDGTPB/providers/Microsoft.Network/virtualNetworks/MyVnet/subnets/mysubnet" }
自定义数据的另一个示例:
{ "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" ] }
缓存磁盘
创建托管磁盘。
缓存磁盘自定义数据
名称 | 类型 | 说明 | 默认值 | 必需 |
---|---|---|---|---|
location | 字符串 | 创建资源的区域。 | 与目标资源组相同的区域 | 否 |
storageSku | 字符串 | 要使用的 SKU 的名称。 | “StandardSSD_LRS” | 否 |
trustedLaunch | 布尔值 |
true 以启用“受信任启动”,否则为 false 。 对于所有部署类型,此值必须相同。 |
false |
否 |
diskAccessId | 字符串 | 上载磁盘内容时使用的磁盘访问权限的资源 ID。如果指定,则在禁用公共网络访问的情况下创建磁盘。 | null |
否 |
缓存磁盘模板
- 1.1.0.0 - 添加了对受信任启动的支持
- 1.0.0.0 - 初始版本
{ "$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())]" } } ] }
引导映像
Boot Image 部署在自定义数据指定的库中创建图库映像和映像版本。它输出创建的计算库映像版本的 ID,供计算机模板使用。
引导映像自定义数据
名称 | 类型 | 说明 | 默认值 | 必需 |
---|---|---|---|---|
location | 字符串 | 创建资源的区域。 | 与目标资源组相同的区域。 | 否 |
generation | 字符串 | 磁盘中使用的虚拟机的生成。 | “V2” | 否 |
trustedLaunch | 布尔值 |
true 以启用“受信任启动”,否则为 false 。 对于所有部署类型,此值必须相同。 |
false |
否 |
gallery | 字符串 | 用于在其中创建映像的计算库的名称。库必须位于目标资源组中。 | - | 是 |
引导映像模板
- 1.1.0.0 - 添加了对受信任启动的支持
- 1.0.0.0 - 初始版本
{ "$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'))]" } } }
计算机
计算机部署会创建虚拟机、NIC 和托管磁盘。无论是否指定引导映像部署,此模板均可使用。
计算机自定义数据
名称 | 类型 | 说明 | 默认值 | 必需 |
---|---|---|---|---|
location | 字符串 | 创建资源的区域。 | 与目标资源组相同的区域。 | 否 |
storageSku | 字符串 | 已创建磁盘的 SKU 名称。 | “StandardSSD_LRS” | 否 |
generation | 字符串 | 虚拟机的生成。 | “V2” | 否 |
trustedLaunch | 布尔值 |
true 以启用“受信任启动”,否则为 false 。 对于所有部署类型,此值必须相同。 |
false |
否 |
secureBoot | 布尔值 |
true 以启用安全引导,否则为 false 。这仅在 trustedLaunch 设置为 true 时适用。 |
true |
否 |
vTpm | 布尔值 |
true 以启用 vTPM,否则为 false 。这仅在 trustedLaunch 设置为 true 时适用。 |
true |
否 |
vmSize | 字符串 | 要创建的 VM 的大小。 | “Standard_D2s_v3” | 否 |
licenseType | 字符串 | 适用于虚拟机的本地许可证类型。 | null |
否 |
subnetId | 字符串 | 将 NIC 连接到的子网的资源 ID。 | - | 是 |
计算机模板
- 1.1.0.0 - 添加了对受信任启动的支持
- 1.0.0.0 - 初始版本
{ "$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')))]" } } }
分层映像
分层映像部署可以创建两种类型的资源:库映像版本和/或托管磁盘。两种资源类型均使用正在发布的 App Layering 映像模板的名称及其构造的版本号命名。版本号是使用 App Layering 映像模板磁盘名称中的主要和次要编号构造的。如果磁盘名称未格式化为数字版本 (number.number
),则默认情况下将应用 1.0
。修补程序编号是指 App Layering 映像模板的版本号(发布的次数)。为库映像分配了名称,为库映像版本分配了版本号。 为托管磁盘分配了附加版本号的名称。
库映像和版本是在自定义数据指定的库中创建的。多次发布映像时,会将新版本添加到计算库映像中,而旧版本保持不变。
分层映像自定义数据
R = 必填项,O = 可选,-= 未使用
名称 | 类型 | 说明 | 默认值 | 库映像 | 托管磁盘 |
---|---|---|---|---|---|
publishAs | 字符串或数组 | 要创建的资源的类型。指定为由“galleryImage”和/或“managedDisk”组成的数组或字符串 | [“galleryImage”] | O | R |
location | 字符串 | 创建资源的区域。 | 与目标资源组相同的区域 | O | O |
generation | 字符串 | 映像将支持的虚拟机的生成。 | “V2” | O | O |
trustedLaunch | 布尔值 |
true 以启用“受信任启动”,否则为 false 。 对于所有部署类型,此值必须相同。 |
false |
O | O |
gallery | 字符串 | 用于在其中创建映像的计算库的名称。库必须位于目标资源组中。 | - | R | - |
replicaCount | 数值 | 库映像版本的每个区域的默认副本数量 | 1 | O | - |
targetRegions | 数组 | 库映像版本的目标区域。这被指定为区域名称字符串和/或 TargetRegion 对象的数组。该数组必须包含源磁盘的区域(由 location 自定义数据指定)。 |
location 自定义数据指定的区域 |
O | - |
storageSku | 字符串 | 要使用的 SKU 的名称。 | “StandardSSD_LRS” | - | O |
diskAccessId | 字符串 | 上载磁盘内容时使用的磁盘访问权限的资源 ID。如果指定,则在禁用公共网络访问的情况下创建磁盘。 | null |
- | O |
分层映像模板
- 1.1.0.0
- 增加了对受信任启动的支持
- 为库映像版本增加了副本数量和目标区域支持
- 增加了对作为托管磁盘发布的支持
- 1.0.0.0 - 初始版本
{ "$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 ')))]" } } }