Azure ARM模板Microsoft.Automation schedules周期任务interval属性配置问题
答案
核心原因
你遇到的interval属性类型差异是Azure Automation ARM接口的API版本适配问题:
- 2022-08-08以下版本的API中,
interval为整数类型,和GitHub上公开的旧示例代码一致 - 2022-08-08及以上版本的API为了支持复杂周期规则,将
interval升级为对象类型,和你看到的官方文档、VS Code语法提示匹配
正确的interval对象格式
你之前尝试的"interval": {interval :1}格式错误,对象内正确的两个必填字段为:
value:正整数,代表周期间隔数值,非OneTime场景下取值需≥1,部分区域校验规则要求≥2,和你遇到的报错提示一致type:字符串,取值必须和外层frequency属性完全一致,可选值为OneTime、Hour、Day、Week、Month
示例1:每2小时执行一次的调度配置
{ "type": "Microsoft.Automation/automationAccounts/schedules", "apiVersion": "2022-08-08", "name": "[concat(parameters('automationAccountName'), '/hourly-schedule')]", "properties": { "frequency": "Hour", "interval": { "value": 2, "type": "Hour" }, "startTime": "2024-01-01T08:00:00Z", "timeZone": "UTC", "isEnabled": true } }
示例2:每3周周一执行一次的调度配置
{ "type": "Microsoft.Automation/automationAccounts/schedules", "apiVersion": "2022-08-08", "name": "[concat(parameters('automationAccountName'), '/weekly-schedule')]", "properties": { "frequency": "Week", "interval": { "value": 3, "type": "Week" }, "weekDays": ["Monday"], "startTime": "2024-01-01T08:00:00Z", "timeZone": "UTC", "isEnabled": true } }
其他周期调度配置方式
除Azure Portal手动配置外,还有3种常用配置方式:
- Bicep/ARM模板部署:按上述对象格式配置即可,注意API版本指定为2022-08-08及以上;如果需要兼容旧示例,可将API版本降到2020-01-13-preview及以下,直接把
interval设为整数即可 - Azure PowerShell:使用
New-AzAutomationSchedulecmdlet,-Interval参数直接传入整数即可,PowerShell模块会自动完成对象格式转换 - Azure CLI:使用
az automation schedule create命令,--interval参数直接传入整数即可,CLI会自动适配类型要求
内容的提问来源于stack exchange,提问作者Vladimir
相关产品推荐
相关产品推荐

