スターターテンプレート
このセクションには、Azure デプロイメントコネクタで使用できる ARM テンプレートがすべて含まれています。これらのテンプレートはそのまま使用することも、特定のニーズに合わせて変更することもできます。
これらのテンプレートによって作成された各リソースには、同じタグセットが付けられます。これらのタグには、タスクを開始したユーザーの名前や入力したコメントなど、デプロイのコンテキストに関する有用な情報が含まれています。
テンプレートは、 コネクタ構成のカスタムデータを多用します。カスタムデータにより、ユーザーはテンプレートを変更することなく、location
、vmSize
、generation
などの一般的なパラメーターを定義できます。
次の表は、これらのテンプレートで使用されるすべてのカスタムデータプロパティを示しています。各プロパティに適用するテンプレートと、そのプロパティが必須かどうかを指定します。
R = 必須、O = オプション、-= 未使用
名前 | 種類 | 説明 | デフォルト | キャッシュディスク | ブートイメージ | マシン | レイヤードイメージ |
---|---|---|---|---|---|---|---|
場所 | string | リソースが作成されるリージョン。 | ターゲットリソースグループと同じリージョン。 | O | O | O | O |
gallery | string | 画像を作成するコンピュートギャラリーの名前。ギャラリーはターゲットリソースグループに含まれている必要があります。 | - | - | R | - | R |
storageSku | string | 管理対象ディスクに使用する SKU の名前。 | “StandardSSD_LRS” | O | - | O | - |
generation | string | 仮想マシンの生成。 | “V2” | - | O | O | O |
trustedLaunch | ブーリアン型 |
true でトラステッド起動を有効にし、それ以外の場合はfalse です。 これはすべてのデプロイタイプで同じ値である必要があります。 |
false |
O | O | O | O |
diskAccessId | string | ディスクコンテンツのアップロード時に使用されるディスクアクセスのリソース ID。これを指定すると、ディスクはパブリックネットワークアクセスを無効にして作成されます。詳細については、 Azure のドキュメントを参照してください。 | null |
O | - | - | - |
vmSize | string | 作成する VM のサイズ。 | “Standard_D2s_v3” | - | - | O | - |
licenseType | string | 作成した仮想マシンに適用するオンプレミスのライセンスタイプ。 | null |
- | - | O | - |
subnetId | string | 仮想マシンのネットワークカードを接続するサブネットのリソース ID。 | - | - | - | R | - |
replicaCount | number | ギャラリーイメージバージョンのリージョンごとのデフォルトのレプリカ数 | 1 | - | - | - | O |
targetRegions | array | ギャラリー画像バージョンのターゲット領域。これは、リージョン名文字列および/または 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"
}
<!--NeedCopy-->
カスタムデータの別の例:
{
"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-->
キャッシュディスク
管理ディスクを作成します。
キャッシュディスクのカスタムデータ
名前 | 種類 | 説明 | デフォルト | 必須 |
---|---|---|---|---|
location | string | リソースが作成されるリージョン。 | ターゲットリソースグループと同じリージョン | いいえ |
storageSku | string | 使用する SKU の名前。 | “StandardSSD_LRS” | no |
trustedLaunch | ブーリアン型 |
true でトラステッド起動を有効にし、それ以外の場合はfalse です。 これはすべてのデプロイタイプで同じ値である必要があります。 |
false |
no |
diskAccessId | string | ディスクの内容をアップロードするときに使用するディスクアクセスのリソース ID。指定した場合、ディスクはパブリックネットワークアクセスを無効にして作成されます。 | null |
no |
キャッシュディスクテンプレート
- 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())]"
}
}
]
}
<!--NeedCopy-->
ブートイメージ
ブートイメージデプロイでは、カスタムデータで指定されたギャラリーにギャラリーイメージとイメージバージョンが作成されます。作成されたコンピュートギャラリーの画像バージョンの ID を出力して、 マシンテンプレートで使用します 。
ブートイメージのカスタムデータ
名前 | 種類 | 説明 | デフォルト | 必須 |
---|---|---|---|---|
location | string | リソースが作成されるリージョン。 | ターゲットリソースグループと同じリージョン。 | no |
generation | string | ディスクで使用される仮想マシンの生成。 | “V2” | no |
trustedLaunch | ブーリアン型 |
true でトラステッド起動を有効にし、それ以外の場合はfalse です。 これはすべてのデプロイタイプで同じ値である必要があります。 |
false |
no |
gallery | string | 画像を作成するコンピュートギャラリーの名前。ギャラリーはターゲットリソースグループに含まれている必要があります。 | - | はい |
ブートイメージテンプレート
- 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'))]"
}
}
}
<!--NeedCopy-->
マシン
マシンデプロイでは、仮想マシン、NIC、管理ディスクが作成されます。このテンプレートは、 ブートイメージデプロイメントが指定されていてもなくても機能します 。
マシンカスタムデータ
名前 | 種類 | 説明 | デフォルト | 必須 |
---|---|---|---|---|
location | string | リソースが作成されるリージョン。 | ターゲットリソースグループと同じリージョン。 | no |
storageSku | string | 作成されたディスクの SKU の名前。 | “StandardSSD_LRS” | no |
generation | string | 仮想マシンの世代。 | “V2” | no |
trustedLaunch | ブーリアン型 |
true でトラステッド起動を有効にし、それ以外の場合はfalse です。 これはすべてのデプロイタイプで同じ値である必要があります。 |
false |
no |
secureBoot | ブーリアン型 |
true でセキュアブートを有効にします。それ以外の場合はfalse です。これが適用されるのは、trustedLaunch がtrue に設定されている場合だけです 。 |
true |
no |
vTPM | ブーリアン型 |
true でvTPM を有効にします。それ以外の場合はfalse です。これが適用されるのは、trustedLaunch がtrue に設定されている場合だけです 。 |
true |
no |
vmSize | string | 作成する VM のサイズ。 | “Standard_D2s_v3” | no |
licenseType | string | 仮想マシンに適用するオンプレミスライセンスの種類。 | null |
no |
subnetId | string | NIC を接続するサブネットのリソース ID。 | - | yes |
マシンテンプレート
- 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')))]"
}
}
}
<!--NeedCopy-->
レイヤードイメージ
レイヤードイメージデプロイメントでは、ギャラリーイメージバージョンとマネージドディスクの 2 種類のリソースを作成できます。どちらのリソースタイプも、公開されているApp Layering イメージテンプレートの名前とその構築されたバージョン番号を使用して名前が付けられています。バージョン番号は、App Layering イメージテンプレートのディスク名のメジャー番号とマイナー番号を使用して作成されます。ディスク名が数値バージョン (number.number
) としてフォーマットされていない場合は、 1.0
がデフォルトで適用されます。パッチ番号は、App Layering イメージテンプレートのバージョン番号 (公開された回数) です。ギャラリー画像には名前が割り当てられ、ギャラリー画像のバージョンにはバージョン番号が割り当てられます。 管理ディスクには、バージョン番号を付加した名前が割り当てられます。
ギャラリーの画像とバージョンは、カスタムデータで指定されたギャラリーに作成されます。画像が複数回公開されると、コンピュートギャラリーの画像に新しいバージョンが追加され、古いバージョンはそのまま残ります。
レイヤードイメージカスタムデータ
R = 必須、O = オプション、-= 未使用
名前 | 種類 | 説明 | デフォルト | ギャラリーイメージ | マネージドディスク |
---|---|---|---|---|---|
publishAs | 文字列または配列 | 作成するリソースのタイプ。「galleryImage」または「managedDisk」で構成される配列または文字列として指定されます | [“galleryImage”] | O | R |
location | string | リソースが作成されるリージョン。 | ターゲットリソースグループと同じリージョン | O | O |
generation | string | イメージがサポートする仮想マシンの生成。 | “V2” | O | O |
trustedLaunch | ブーリアン型 |
true でトラステッド起動を有効にし、それ以外の場合はfalse です。 これはすべてのデプロイタイプで同じ値である必要があります。 |
false |
O | O |
gallery | string | 画像を作成するコンピュートギャラリーの名前。ギャラリーはターゲットリソースグループに含まれている必要があります。 | - | R | - |
replicaCount | number | ギャラリーイメージバージョンのリージョンごとのデフォルトのレプリカ数 | 1 | O | - |
targetRegions | array | ギャラリー画像バージョンのターゲット領域。これは、リージョン名文字列および/または TargetRegion オブジェクトの配列として指定されます。アレイには、ソースディスクの領域 (location カスタムデータで指定されている領域) が含まれている必要があります。 |
location カスタムデータで指定された地域 |
O | - |
storageSku | string | 使用する SKU の名前。 | “StandardSSD_LRS” | - | O |
diskAccessId | string | ディスクの内容をアップロードするときに使用するディスクアクセスのリソース 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 ')))]"
}
}
}
<!--NeedCopy-->