本文为您介绍如何提交异步任务。任务提交成功后,函数服务会返回状态码 202(Accepted),以及任务的唯一标识 RequestID。其中,RequestID 可用于后续查询任务执行状态或者终止任务。
对于 WebServer 模式的异步任务,支持通过以下 3 种方式提交任务。
服务发布成功后,可以给任务 配置 Timer 触发器,实现任务的定时触发执行。
服务发布成功后,可以给服务配置 API 网关触发器,通过调用 API 网关域名提交任务。
curl 示例如下:
curl --location 'https://api_gateway_address/' \ --header 'Content-Type: application/json' \ --data '{ "test": "hello veFaaS!" }'
服务发布成功后,支持在控制台发起函数测试,模拟定时提交任务或通过网关域名提交任务。详情请参见 测试函数。
对于非 WebServer 模式的异步任务,支持通过以下 3 种方式提交异步任务。
服务发布成功后,可以给任务 配置 Timer 触发器,实现任务的定时触发执行。
服务发布成功后,可以给服务配置 API 网关触发器,通过调用 API 网关域名提交任务。根据是否修改启动命令,分为以下两种场景:
不自定义启动命令,任务默认通过函数配置的启动命令执行
curl 示例如下:
curl -k --location 'https://api_gateway_address/'
自定义启动命令,任务通过新的启动命令执行
Header 'X-Faas-Custom-Task: true'
声明该任务需要使用自定义启动命令。curl 示例如下:
说明
启动命令的长度不能超过 256 个字符。
# 示例1:自定义参数 curl --location 'https://api_gateway_address/' \ --header 'X-Faas-Custom-Task: true' \ --header 'Content-Type: application/json' \ --data '{ "Command": "./run.sh --foo=bar" }' # 示例2:自定义启动命令 (请确保代码包/镜像中有对应的启动脚本) curl --location 'https://api_gateway_address/' \ --header 'X-Faas-Custom-Task: true' \ --header 'Content-Type: application/json' \ --data '{ "Command": "./custom-script.sh" }'
服务发布成功后,支持在控制台发起函数测试,模拟定时提交任务或通过网关域名提交任务。其中,模拟 API 网关域名方式提交任务时,支持自定义启动命令。
在函数详情页面,单击 测试。
在函数测试页面,配置相关参数。
配置项 | 说明 |
---|---|
触发器类型 | 支持 Timer 触发器 和 API 网关触发器。 |
启动命令 | 当选择 API 网关触发器 时,支持自定义启动命令。如果为空,则使用函数配置的默认启动命令。 |
单击 测试。
任务提交成功后,控制台将返回 RequestID。单击 查看详情,可跳转至异步任务列表,查看当前任务的执行情况。