既存のディスクを使用して新しい VM を作成するためにコマンドをパイプライン処理する PowerShell コードのスニペット (以下に示す) があります。私が抱えている問題は、コードが汎用関数であり、VM に追加する必要があるデータ ディスクの数がわからないため、これらを一緒にパイプライン処理することが難しいことです。
-inputobject を使用してみましたが、これは New-AzureVM コマンドでは機能しないようです。VM を開始する前にデータ ディスクを接続する必要があるため、アイデアをいただければ幸いです。
ありがとう、リチャード
function Build_Existing_VM($serviceName, $osDisk, $dataDisks, $availabilitySetName, $subnetName)
{
$vmConfig = New-AzureVMConfig -Name $serviceName `
-InstanceSize Medium `
-DiskName $osDisk `
-AvailabilitySetName $availabilitySetName `
-HostCaching "ReadOnly" |
Add-AzureEndpoint -Name "rdp" -PublicPort 63000 -LocalPort 3389 -Protocol tcp |
Add-AzureEndpoint -Name "web" -PublicPort 80 -LocalPort 6080 -Protocol tcp |
Set-AzureSubnet $subnetName
$i = 0
foreach ($dd in $dataDisks.Split(','))
{
$vmConfig = (Add-AzureDataDisk -Import -LUN $i -DiskName $dd -inputobject $vmConfig)
$i++
}
New-AzureVM -ServiceName $serviceName -VNetName $virtualNetworkName -inputobject $vmConfig
}