管理任务模板

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

通过SAE创建Job任务模板,可以实现周期性自动执行任务,或者手动发送HTTP/HTTPS请求来触发任务执行,并且在任务完成后快速释放计算资源。

使用场景

SAE Job适用于对延时不敏感的异步离线场景。

  • 时间驱动处理场景:例如整点发送优惠券、每天更新收益、每天刷新标签数和人群数据。

  • 批量处理数据:例如按月批量统计报表数据、批量更新短信状态,对实时性要求低。

  • 异步执行解耦:例如刷新活动状态、异步执行离线查询、与内部逻辑解耦。

  • CI/CD:执行完CI/CD持续集成任务后,能够立即释放计算资源。

SAE Job和开源自建产品在不同场景下的对比信息,请参见应用场景

前置准备

如果是主账号,则需要开通Serverless应用引擎EventBridge并授权。

如果需要使用RAM用户操作,准备工作如下:

  1. 阿里云账号开通EventBridge。

  2. 阿里云账号开通SAE Job,并根据控制台提示创建服务关联角色AliyunServiceRoleForEventBridgeSendToSAE

  3. 阿里云账号为RAM用户授予AliyunEventBridgeReadOnlyAccess权限。具体操作,请参见RAM用户授权

使用流程

  1. 在执行任务前,需要首先创建任务模板。

  2. 通过定时规则或发送HTTP/HTTPS请求的方式触发任务,每次触发均会根据任务模板生成新的任务。

  3. 每个任务均由SAE创建新的实例并执行任务。

dg_sae_job

创建任务模板

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击创建任务模板

  2. 基本信息向导页,配置以下信息,然后单击下一步

    配置项

    说明

    任务模板名称

    自定义任务模板名称。

    命名空间类型

    选择系统创建的命名空间或选择已有命名空间

    任务部署方式

    • 选择镜像部署:点击设置镜像,选择Demo镜像我的阿里云镜像(即同账号ACR实例的镜像)、其他阿里云账号私有镜像(即不同账号ACR实例的镜像)、或自定义镜像(即非ACR实例的镜像)来部署应用。也可以直接引用其他任务模板镜像。制作、推送、拉取镜像的方式与部署应用相同,请参见使用镜像部署应用

    • 代码包部署:点击设置代码包部署。选择技术栈语言代码包类型,然后上传代码包并指定代码包运行环境。制作、上传代码包的方式与部署应用相同,请参见使用代码包部署应用

    • Shell脚本:点击配置Shell脚本,参考页面中的示例脚本配置任务的执行脚本。

    实例类型

    • Default:性能稳定,不会被抢占和驱逐,适用于对实时性及稳定性要求高的场景。

    • BestEffort:有较大的性能波动,且可被抢占和驱逐,适用于对实时性及稳定性无特殊要求的场景。

    • BestEffort 优先:是指系统会优先调度BestEffort类型实例,当BestEffort实例被抢占时会自动FallbackDefault实例,避免任务执行中断。

    单实例规格

    指定任务运行时单个实例的CPU和内存规格。

    并发实例数

    指定任务在任一时刻应该并发运行的实例数量。

  3. 任务设置向导页,配置以下信息,然后单击下一步

    配置项

    说明

    任务类型

    • 周期性任务

      • Cron表达式:用于定义任务执行的周期。可以手动输入Cron表达式,或者单击使用生成工具交互式地生成Cron表达式。

    • 一次性任务(HTTP/HTTPS 触发)

      • 请求类型:按需选择触发任务执行的请求协议:HTTP、HTTPS、HTTP&HTTPS。

      • 请求方法:按需选择触发任务执行的请求方法,可多选:GET、POST、PUT、PATCH、DELETE、HEAD。

      • 安全配置:在下拉列表选择安全配置方式。取值如下:

        • 无需配置:无需进行安全配置,接收到的所有URL请求均转换为事件推送到事件总线EventBridge

        • 安全域名:输入安全的域名信息。只有使用该域名访问的URL请求支持转换为事件推送到事件总线EventBridge,其余请求均会被过滤。

        • IP网段:输入正确的IP地址或者IP网段。只有使用该IP地址或该IP网段内的IP地址访问的URL请求支持转换为事件推送到事件总线EventBridge,其余请求均会被过滤。

    并发策略

    展开更多设置,选择并发策略。

    • Allow:允许并发运行任务。定时任务不断创建新的任务。

    • Forbid:禁止并发运行任务。在前一个任务未完成时,不创建新任务。

    • Replace:当到达新任务创建时间点,而前一个任务未完成时,新的任务会取代前一个任务。

    超时时间

    指定任务可运行的时间期限,超时未结束,系统将尝试进行终止。取值范围为[0, 604800],单位为秒。默认值为3600秒。

    重试次数

    指定任务失败后进行重试的次数。取值范围为[0, 10],默认为3次。

    启用任务分片

    打开启用任务分片开关后,单击编辑任务分片名称,在编辑任务分片名称面板进行配置。多用于处理大数据业务需求,将分片平均分给多个客户端执行。

  4. (可选)在高级设置向导页,配置所需功能(以选择镜像部署为例)。

    • 启动命令

      应用的启动命令取决于镜像中设定的CMDENTRYPOINT,在SAE中无需额外配置。如有特殊需求,可以通过设置启动命令来覆盖镜像中设定的启动命令。

    • 运行环境与生命周期管理

    • 数据持久化

      将应用数据存储到NASOSS数据库,避免应用变更或停止导致数据丢失。注意NAS、OSS、数据库需要额外付费。

    • 日志

      可以将日志输出到SLS便于统一管理和分析。注意SLS需要额外付费。

  5. 点击创建,等待任务模板创建完成。

  6. 查看已创建的任务模板:SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

执行与启停任务

执行周期性任务

周期性任务会根据创建任务模板时设置的Cron表达式来自动周期性执行任务。

执行一次性任务

一次性任务可以通过发送HTTPHTTPS请求触发执行(具体的请求协议与请求方法由创建任务模板时的配置决定)。

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 任务设置区域,获取公网请求 URL私网请求 URL。如果是从公网发起请求,后续需要使用公网请求 URL

  3. 通过发送请求触发任务执行。可以通过配置POST请求方法,在调用时将具体参数通过JSON格式传入Body,参数说明详见ExecJob

    • 示例1:调用时,指定环境变量。

      curl -d '{"Envs":[{"name":"aaa","value":"bbb"},{"name":"ccc","value":"ddd"}]}' -H 'Content-Type: application/json' <url> # 注意将<url>用实际值替换
    • 示例2:调用时,指定并发实例数。

      curl -d '{"Replicas":"3"}' -H 'Content-Type: application/json' <url> # 注意将<url>用实际值替换

手动触发任务执行

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 任务模板详情页面,在右上角点击手动执行任务

停止任务

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 任务模板详情页面,在右上角点击停止任务,根据页面提示操作。

管理任务记录

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 在左侧导航栏,单击任务记录,在任务记录页面,查看任务执行状态,按需操作。

    • 删除任务:在操作列,单击删除,根据页面提示操作。

    • 查看详情:单击目标任务ID进入任务记录详情页面,查看实例的运行状态。

查看任务事件

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 在左侧导航栏,单击事件信息,在上方搜索框中可以按照以下条件搜索事件:来源名事件原因来源类型事件等级

编辑与删除任务模板

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 在右上角,单击编辑任务模板删除任务模板,按照页面提示操作。

警告

删除任务模板后,系统将删除该任务模板下任务的所有实例(包括任务模板的创建信息),以及系统帮您代购的SLS,并关闭日志收集到SLS的功能。

回退历史版本

修改任务模板后,如果新版本有问题,可以将任务模板回退至所需的历史版本。

  1. SAE任务模板中,在顶部选择目标地域和命名空间,点击目标任务模板名称跳转到任务模板详情页。

  2. 在右上角,单击回退历史版本

  3. 回退历史版本页面,选择所需的版本,单击确定

相关文档

功能

文档

SAEJob支持对开源Job的改造迁移。

使用云效2020,通过代码包或镜像方式持续构建和部署任务模板至SAE

使用云效2020部署应用与任务模板至SAE