Powershell G-cloud将磁盘附加到实例

时间:2019-03-20 13:27:41

标签: powershell gcloud

我正在阅读文档: https://googlecloudplatform.github.io/google-cloud-powershell/#/google-compute-engine/GceInstance/Set-GceInstance

我无法运行以下代码:

$disk = Get-GceDisk disk-snapshot-instance-1
Set-GceInstance -Name instance-1 -AttachDisk $disk

当我将$ disk替换为disk-snapshot-instance-1时,会出现相同的错误:

Set-GceInstance : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Set-GceInstance -Name instance-1 -AttachDisk $disk
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-GceInstance], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Google.PowerShell.ComputeEngine.SetGceInstanceCmdlet

我不明白的是,当通过G-cloud界面手动连接磁盘时,它可以删除磁盘。

Set-GceInstance -Name instance-1 -RemoveDisk $disk

我的问题: 在删除磁盘的同时,为什么不能用上面的代码将磁盘连接到实例?

1 个答案:

答案 0 :(得分:0)

正确的命令是:

Set-GceInstance $instance -AddDisk $disk1 -Zone $zone
Set-GceInstance $instance -RemoveDisk $disk1 -Zone $zone

我使用gcloud创建一个具有2个磁盘的实例,然后:

Get-GceDisk | Format-List -Property Name

这将返回:

Name : disk-1
Name : disk-2
Name : instance-1

然后我可以:

$zone = "us-west1-c"
$disk2 = Get-GceDisk disk-2
Set-GceInstance instance-1 -RemoveDisk $disk2 -Zone $zone
Set-GceInstance instance-1 -AddDisk $disk2 -Zone $zone

HTH