使用Azure Deployment Environments创建VM遇DeploymentCanceledByTimeout超时问题
Azure 部署环境超时问题解答
问题背景
部署仅包含通过镜像模板创建VM步骤,多次测试超时表现一致:
- 部署启动后40分钟:资源组创建完成,门户可见
- 部署启动后75分钟:VM在门户可见,状态为「创建中」
- 部署启动后675分钟(11小时15分):开发门户触发超时提示
- 部署启动后705分钟(11小时45分):VM进入运行状态
配置详情:
- 区域:
eastus2 - OS磁盘类型:
Premium_LRS - VM规格:
Standard_B4ms - 操作系统:Win11
咨询问题
- 该超时是针对单个资源还是整个环境创建的全局超时?
- 如何延长超时时间?
- 相关超时配置的官方文档在哪里?
- 是否可以异步执行ARM模板?
解答
1. 超时范围
这是整个环境创建的全局超时,针对Azure Deployment Environments(ADE)的完整部署流程,而非单个VM资源的创建超时。ADE会监控从部署启动到所有资源配置完成的总时长,触发超时提示后,后台的资源创建流程可能仍会继续(如你的测试中VM在超时后仍成功完成创建)。
2. 延长超时时间
可从两个层级调整超时设置:
- ADE全局超时:默认值为60分钟,需修改环境定义文件的顶层
deploymentTimeout属性(单位:分钟)。比如设置为120分钟(2小时):{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentEnvironmentDefinition.json#", "contentVersion": "1.0.0.0", "name": "win11-vm-env", "location": "eastus2", "deploymentTimeout": 120, "parameters": { // 你的参数配置 }, "template": { // ARM模板内容 } } - 单个VM资源的部署超时:ARM模板中单个VM的默认超时为1小时,最大可设为4小时。在VM资源的
properties.duration字段指定ISO 8601格式的时长即可,比如PT4H表示4小时:
注意:要保证ADE全局超时大于等于单个资源的超时,避免全局超时提前触发。{ "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2023-07-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "properties": { "duration": "PT4H", // 其他VM配置项 } }
3. 官方文档位置
- ADE的超时配置:可查阅Azure官方文档中「Azure Deployment Environments 环境定义配置」相关章节
- ARM模板单个资源超时:可参考「ARM模板资源部署属性」相关文档
4. 异步执行ARM模板
可以通过Azure CLI或PowerShell提交异步部署,提交后无需保持客户端连接,Azure后台会继续执行:
- Azure CLI命令:
az deployment group create --resource-group <你的资源组名称> --template-file <本地模板路径> --no-wait - PowerShell命令:
提交后可通过部署ID查询状态,即使关闭客户端,部署也会在后台持续进行。New-AzResourceGroupDeployment -ResourceGroupName <你的资源组名称> -TemplateFile <本地模板路径> -AsJob
内容的提问来源于stack exchange,提问作者Karson
相关产品推荐
相关产品推荐

