" DiskImageNotReady"使用ARM模板和JSON

时间:2017-01-23 09:22:08

标签: json powershell azure cloud

我正在尝试使用ARM模板部署3个azure Ubuntu vm。它们被部署为资源组,存储帐户,SQL服务器等更大的基础架构部署的一部分。除了VM创建之外,一切都很好。在使用单个VM进行测试期间,脚本可以正常运行,但是在使用3时,我收到以下错误 -

    New-AzureRmResourceGroupDeployment : 16:52:57 - Resource Microsoft.Compute/virtualMachines 'xxxV3Monitor1' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "DiskImageNotReady",
        "message": "Disk image https://xxxxxx.blob.core.windows.net/rootvhd/v1ubuntudocker.vhd is in Pending state. Please retry when image is ready."
      }

我们正在使用的自定义根VHD图像似乎失败了,因为它处于"待定"状态,我认为这是对文件的一些锁定,因为它用于创建其他VM之一?

任何帮助非常感谢。谢谢。

1 个答案:

答案 0 :(得分:2)

我假设您在从VM创建VM之前移动VM映像。 如果是这样,请在移动后尝试此代码,然后再启动部署脚本: ($ blob1是您调用Start-AzureStorageBlobCopy命令的变量)

### Retrieve the current status of the copy operation ###
$status = $blob1 | Get-AzureStorageBlobCopyState 

### Print out status ### 
$status 

### Loop until complete ###                                    
While($status.Status -eq "Pending"){
  $status = $blob1 | Get-AzureStorageBlobCopyState 
  Start-Sleep -s 60
  ### Print out status ###
  $status
}

这将循环每一分钟更新状态。