Serverless应用引擎SAE(Serverless App Engine)支持短时任务(Job)。本文介绍如何在SAE控制台实现任务的生命周期管理。
前提条件
- 了解SAE使用限制
- 开通EventBridge如果您需要使用RAM用户操作,准备工作如下。
- 阿里云账号开通EventBridge。
- 阿里云账号开通SAE Job,并根据控制台提示创建服务关联角色AliyunServiceRoleForEventBridgeSendToSAE。
- 阿里云账号为RAM用户授予AliyunEventBridgeReadOnlyAccess权限。具体操作,请参见为RAM用户授权。
背景信息
SAE支持短时任务。根据业务数据处理需求,SAE能够在短时间内快速创建大量的计算任务,并且在任务完成后快速释放计算资源。这些短时任务具备单机、广播、并行计算、分片运行、定时、失败自动重试、事件触发等特性。与开源任务框架相比,SAE Job使用更方便、更节省、更稳定、更透明和更省心。SAE Job有以下适用场景。
- 时间驱动处理场景:例如整点发送优惠券、每天更新收益、每天刷新标签数和人群数据。
- 批量处理数据:例如按月批量统计报表数据、批量更新短信状态,对实时性要求低。
- 异步执行解耦:例如刷新活动状态、异步执行离线查询、与内部逻辑解耦。
- CI/CD:执行完CI/CD持续集成任务后,能够立即释放计算资源。
使用限制
SAE Job适用于对延时不敏感的异步离线场景。若您对延时敏感或者需要高频次调用,可以选择SAE应用作为解决方案。
使用流程
在执行任务前,您首先需要创建任务模板,配置项包括任务的基本信息、部署配置和任务设置。创建完成后,您可以通过设置定时规则、调用HTTP请求和调用API的方式触发任务,每次触发均会根据任务模板生成新的任务,可以在任务记录页面查看。同时,每个任务均会生成新的实例,可以在任务记录页面单击目标任务查看详情。

创建任务模板
- 登录SAE控制台。
- 在左侧导航栏,单击任务模板列表,在顶部菜单栏选择地域。
- 在任务模板列表页面,单击创建任务模板。
- 在任务基本信息配置向导页面,设置相关信息,然后单击下一步:部署配置。
配置项 说明 任务模板名称 输入自定义的任务名称。 任务类型 - 周期性任务
- 一次性任务(HTTP/HTTPS触发)
专有网络配置 - 自定义配置:选中后,可以为创建的任务选择所需的命名空间、VPC、vSwitch及安全组。
- 自动配置:选中后,SAE将自动配置命名空间、VPC、vSwitch及安全组,无需手动选择。
命名空间 选择自定义配置时需要配置。
在下拉列表选择创建好的命名空间。命名空间和VPC是一一映射关系,关于修改VPC的更多信息,请参见创建和管理专有网络。vSwitch 选择自定义配置时需要配置。
可以单击更改替换推荐可用区的vSwitch。 vSwitch数量的取值范围为[1,3]。安全组 选择自定义配置时需要配置。
在下拉列表选择安全组。如果VPC内没有创建安全组,单击创建安全组,根据提示创建安全组。更多信息,请参见创建安全组。VCPU 选择需要创建的实例CPU规格。 内存 选择需要创建的实例内存规格。 任务模板描述 输入任务模板的基本情况。 - 在部署配置配置向导页面,设置相关信息,然后单击下一步:任务设置。
- 在任务设置配置向导页面,配置相关信息,单击下一步:确认规格。
配置项 说明 任务基本设置 Cron表达式 任务类型选择周期性任务时需要配置。
如果定时规则比较简单,可以单击使用生成工具进行设置;如果定时规则复杂,工具无法实现,可以手动输入Cron表达式。更多信息,请参见Cron表达式的使用。一次性任务触发设置 任务类型选择一次性任务(HTTP/HTTPS触发)时需要配置。
- 请求类型:按需选择HTTP或HTTPS协议。
- 请求方法:在下拉列表选择请求方法。取值如下:
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- 安全配置:在下拉列表选择安全配置方式。取值如下:
- 无需配置:无需进行安全配置,接收到的所有URL请求均转换为事件推送到事件总线EventBridge。
- IP网段:输入正确的IP地址或者IP网段。只有使用该IP地址或该IP网段内的IP地址访问的URL请求支持转换为事件推送到事件总线EventBridge,其余请求均会被过滤。
- 安全域名:输入安全的域名信息。只有使用该域名访问的URL请求支持转换为事件推送到事件总线EventBridge,其余请求均会被过滤。
IP网段 安全配置选择IP网段时需要配置。
最多支持添加5个IP地址或IP网段。配置项说明,请参见安全配置。安全域名 安全配置选择安全域名时需要配置。
最多支持添加5个安全域名。配置项说明,请参见安全配置。时区设置 默认为UTC+8。 并发实例数 指定任务在任一时刻并发运行的实例数量。 任务高级设置(可选) 并发策略 选择并发策略。 - Forbid:禁止并发运行任务。在前一个任务未完成时,不创建新任务。
- Allow:允许并发运行任务。定时任务不断创建新的任务。
- Replace:当到达新任务创建时间点,而前一个任务未完成时,新的任务会取代前一个任务。
超时时间 指定任务可运行的时间期限,超时未结束,系统将尝试进行终止。取值范围为[0, 604800],单位为秒。默认值为3600秒。 重试次数 指定任务失败后进行重试的次数。取值范围为[0, 10],默认为3次。 启用任务分片 打开启用任务分片开关后,单击编辑任务分片名称,在编辑任务分片名称面板进行配置。多用于处理大数据业务需求,将分片平均分给多个客户端执行。 - 在确认规格配置向导页面,仔细确认配置信息后单击确认创建。创建完成后,在任务模板列表页面,查看已创建的任务信息。
编辑任务模板
- 登录SAE控制台。
- 在左侧导航栏,单击任务模板列表,在顶部菜单栏选择地域,单击具体任务名称。
- 在任务模板详情页面,单击编辑任务模板。
- 在任务设置配置向导页面,修改相关信息,然后单击下一步:部署配置。具体配置,请参见创建任务模板的任务设置。
- 在部署配置配置向导页面,修改相关信息,然后单击确认。说明 部署方式由任务首次部署方式决定,请根据所需的部署方式设置信息。在任务模板详情页面上方,单击查看详情进入变更详情页面,查看任务的执行状态。
- 可选:在任务模板详情页面,按需操作。
- 执行任务
单击手动执行任务,页面会跳转至任务记录页面。单击目标任务ID,进入任务详情页面。
- 启停任务
- 已停止的任务:单击启用任务。
- 运行中的任务:单击停止任务。
- 删除任务模板
单击删除任务模板,在弹出的删除任务模板对话框,单击确定。
警告 删除任务后,系统将物理删除该任务下所有的实例,以及任务的基本创建信息。同时也会删除系统帮您代购的SLS,关闭日志收集到SLS的功能。
- 执行任务
管理任务记录
- 登录SAE控制台。
- 在左侧导航栏,单击任务列表,在顶部菜单栏选择地域,然后单击具体任务名称。
- 在左侧导航栏,单击任务记录,在任务记录页面,查看任务执行状态,按需操作。
- 删除任务
在操作列,单击删除,在弹出的删除任务记录对话框,单击确定。
- 查看详情
单击目标任务ID进入任务详情页面,查看实例的运行状态。
- 删除任务
查看任务事件
- 登录SAE控制台。
- 在左侧导航栏,单击任务列表,在顶部菜单栏选择地域,然后单击具体任务名称。
- 在左侧导航栏,单击事件信息,在事件信息页面,按需查看信息。搜索条件如下:
- 来源类型:包括任务(Job)和任务实例(Pod)。
- 事件等级:包含Warning和Normal,需要关注Warning级别事件。
- 来源名:输入事件来源名,例如应用名称、应用实例名称。
- 事件原因:输入事件原因,例如Pod的FailedScheduling。
回退历史版本
任务模板在SAE中创建后会不断迭代升级,如果您发现部署的版本有问题,可以将在SAE创建的任务模板回退至所需的历史版本。
- 登录SAE控制台。
- 在左侧导航栏,单击任务模板列表,在顶部菜单栏选择地域,单击具体任务名称。
- 在任务模板详情页面右上角,单击回退历史版本。
- 在回退历史版本页面,选择所需的版本,设置发布策略。可以单击表格配置信息列的查看详情,查看各个历史版本的配置信息。
- 单击确定。在任务模板详情页面上方,单击查看详情,在变更详情页面,查看变更的具体执行状态。如果执行状态显示执行成功,表示成功回退历史版本。
为一次性任务配置参数
在一次性任务中,可以配置POST请求方法,并在调用时将具体参数通过JSON格式传入Body。具体操作,请参见ExecJob。
- 示例1:调用时,指定环境变量。
curl -d '{"Envs":[{"name":"aaa","value":"bbb"},{"name":"ccc","value":"ddd"}]}' -H 'Content-Type: application/json' {url}
- 示例2:调用时,指定启动命令和启动参数。
curl -d '{"Command":"aaa","CommandArgs":["bbb","ccc"]}' -H 'Content-Type: application/json' {url}
- 示例3:调用时,指定并发实例数。
curl -d '{"Replicas":"3"}' -H 'Content-Type: application/json' {url}