AssociationProperty参数的常见格式约束

更新时间:
复制为 MD 格式

在构建 OOS 任务模板或调用执行工具时,请严格遵循以下核心参数的 JSON 格式规范:

1. 资源选择参数 (Targets)

标识:参数的AssociationPropertyTargets
Targets 参数定义了任务作用的目标资源范围。支持以下三种主要模式:

模式 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 可选 PayByBandwidthPayByTraffic

  • Status的可选值为:Pending(创建中)、Running(运行中)、Starting(启动中)Stopping(停止中)、Stopped(已停止)

2. 并发与速率控制参数 (RateControl)

定义任务在多个目标资源上执行时的滚动策略。

标识:参数的AssociationPropertyRateControl

示例:{"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)是失败暂停的时候才支持EveryBatchPauseFirstBatchPause

3. 定时触发参数 (TimerTrigger)

标识:参数的AssociationPropertyALIYUN::OOS::Component::TimerTrigger

定义任务的执行时间计划。

  • 立即执行:{"type": "at", "expression": "now", "endDate": ""},注:type必须为 atexpression必须为 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必须为 cronperiodUnit必须为 cronexpression必须是一个有效的Cron表达式的使用

4. 磁盘清理规则(CleanUpInfos)

标识:参数的AssociationPropertyALIYUN::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)

这个参数通常用于执行每周执行的频率

标识:AssociationPropertyTimeTriggerWeekly

可选值:*(每天执行)或表示每周星期几执行的字符串

  • 参数格式说明:

    • 使用 *:表示每天执行。

    • 使用数字数组(1-7):使用英文逗号分割,表示每周的特定几天。

    • 映射关系:1 表示周日,2 表示周一 ... 7 表示周六。

  • 参数示例:

    • 每天执行:"*"

    • 仅工作日执行(周一至周五):"2,3,4,5,6"

    • 仅周末执行(周六、周日):"1,7"

    • 特定日期执行(周一、周三、周五):"2,4,6"