在构建 OOS 任务模板或调用执行工具时,请严格遵循以下核心参数的 JSON 格式规范:
1. 资源选择参数 (Targets)
标识:参数的AssociationProperty为 TargetsTargets 参数定义了任务作用的目标资源范围。支持以下三种主要模式:
模式 1:通过具体资源 ID 选择 (ResourceIds)
适用场景:用户提供了明确的实例 ID 列表。
示例:{"Type": "ResourceIds", "ResourceIds": ["i-bp1xxxxxxxxxxxxxx"], "RegionId": "cn-hangzhou"}
模式 2:通过标签筛选 (Tags)
适用场景:选择带有特定标签(Key/Value)的实例。
示例:
{
"Type": "Tags",
"RegionId": "cn-hangzhou",
"Tags": [
{
"Key": "Environment",
"Value": "Production"
}
],
"Parameters": {
"Status": "Running"
}
}模式3:通过资源组选择(ResourceGroup)
适用场景:选择资源组内满足特定属性(如状态、计费方式、网络类型)的所有实例。
示例:
{
"Type": "ResourceGroup",
"RegionId": "cn-hangzhou",
"ResourceGroupId": "rg-aek2lbnol5jamai",
"Parameters": {
"Status": "Running"
}
}模式 4:通过属性条件全量筛选 (All)
适用场景:选择地域内满足特定属性(如状态、计费方式、网络类型)的所有实例。
示例:
{
"Type": "All",
"RegionId": "cn-hangzhou",
"Parameters": {
"InstanceChargeType": "PostPaid",
"InstanceNetworkType": "vpc",
"InternetChargeType": "PayByTraffic",
"Status": "Running",
"ResourceGroupId": "rg-acfxxxxxxxx"
}
}
注:
InstanceChargeType可选PrePaid(包年包月) 或PostPaid(按量计费)InstanceNetworkType可选值vpc(VPC网络)和classic(经典网络)InternetChargeType可选PayByBandwidth或PayByTraffic。Status的可选值为:Pending(创建中)、Running(运行中)、Starting(启动中)Stopping(停止中)、Stopped(已停止)
2. 并发与速率控制参数 (RateControl)
定义任务在多个目标资源上执行时的滚动策略。
标识:参数的AssociationProperty为RateControl
示例:{"Mode": "Concurrency", "MaxErrors": 0, "Concurrency": 10}
说明:
Mode:可选值为Batch(批次控制)或Concurrency(并发模式)通常为Concurrency(并发模式)。MaxErrors:指定任务在停止前的最大错误次数,可以是数值或者百分比,默认值是0,表示有1个错误时整个任务就会失败结束。若设置为100%则表示无论遇到多少错误整个执行都会成功。Concurrency:Mode 为Concurrency时,指定的并发速率,可以是一个数值或者百分比来控制并发速率,输入最大值100 。Batch:Mode 为Batch时,指定的并发控制,把一个执行明确地分成多个批次,然后一个批次运行完,再运行下一个批次,上一个批次不全部完成的情况下,下一个批次不会开始,批次值可以是数值或者百分比,如[1, 5%, 10%] 表示第一个批次是1,第二个批次是总量的5%,第三个以后批次为10%。BatchPauseOption: Mode 为Batch时,指定暂停的类型,可选值FirstBatchPause(首批暂停)、Automatic(不暂停)以及EveryBatchPause(每批暂停),注:只有执行模式(ExecuteMode)是失败暂停的时候才支持EveryBatchPause和FirstBatchPause
3. 定时触发参数 (TimerTrigger)
标识:参数的AssociationProperty为 ALIYUN::OOS::Component::TimerTrigger
定义任务的执行时间计划。
立即执行:
{"type": "at", "expression": "now", "endDate": ""},注:type必须为at,expression必须为now,且endDate必须为空字符串""。指定时间执行:
{"type": "at", "expression": "2025-12-29T03:00:00Z", "endDate": ""},注:type必须为at,且endDate必须为空字符串""。周期性执行 (Cron):
{
"type": "cron",
"expression": "0 0 * ? * *",
"periodUnit": "cron",
"startDate": "2025-12-29T02:08:09Z",
"endDate": "2026-12-29T02:00:00Z",
"timeZone": "Asia/Shanghai"
}注:type必须为 cron,periodUnit必须为 cron,expression必须是一个有效的Cron表达式的使用
4. 磁盘清理规则(CleanUpInfos)
标识:参数的AssociationProperty为 ALIYUN::OOS::Component::CleanUpInfo
该参数用于定义在 ECS 实例上执行清理任务的具体逻辑。通过指定“文件保留时间”、“目标目录”以及“文件匹配模式”,系统将自动删除符合条件的陈旧文件。
规则采用三段式结构,通过竖线 | 分隔内部组件,通过英文逗号分隔
4.1. 单组规则
规则:保留时间|目录绝对路径|文件匹配模式
保留时间 (Retention Period):
格式:数字 + 单位。
单位支持:d (天), h (小时), m (分钟)。
示例:7d 表示清理 7 天前的文件;12h 表示清理 12 小时前的文件。
目录绝对路径 (Directory Path):
必须是绝对路径。
Linux 示例:/root/logs/ 或 /var/log/nginx/。
Windows 示例:C:\Users\Administrator\logs\(注意反斜杠转义)。
文件匹配模式 (File Pattern):
支持通配符 。
示例:.log 表示所有 .log 后缀文件;access.2023-* 表示特定前缀文件;* 表示目录下所有文件。
4.2. 多规则组合
如果需要同时清理多个目录或多种类型的文件,请使用英文逗号 , 连接:
综合示例:3d|/root/log/|*.log,3h|/root/log/|*.access,30m|C:\\Logs\\|*.tmp
规则1:清理
/root/log/下 3 天前的.log文件。规则2:清理
/root/log/下 3 小时前的.access文件。规则3:清理 Windows 路径
C:\Logs\下 30 分钟前的.tmp文件。
5. 每周任务执行周期(TimeTriggerWeekly)
这个参数通常用于执行每周执行的频率
标识:AssociationProperty是 TimeTriggerWeekly
可选值:*(每天执行)或表示每周星期几执行的字符串
参数格式说明:
使用
*:表示每天执行。使用数字数组(1-7):使用英文逗号分割,表示每周的特定几天。
映射关系:
1表示周日,2表示周一 ...7表示周六。
参数示例:
每天执行:
"*"仅工作日执行(周一至周五):
"2,3,4,5,6"仅周末执行(周六、周日):
"1,7"特定日期执行(周一、周三、周五):
"2,4,6"