You need to enable JavaScript to run this app.
导航
提交任务
最近更新时间:2024.10.22 15:05:47首次发布时间:2024.10.22 15:05:47

本文为您介绍如何提交异步任务。任务提交成功后,函数服务会返回状态码 202(Accepted),以及任务的唯一标识 RequestID。其中,RequestID 可用于后续查询任务执行状态或者终止任务。

WebServer 模式

对于 WebServer 模式的异步任务,支持通过以下 3 种方式提交任务。

定时提交

服务发布成功后,可以给任务 配置 Timer 触发器,实现任务的定时触发执行。

通过 API 网关域名提交

服务发布成功后,可以给服务配置 API 网关触发器,通过调用 API 网关域名提交任务。

  1. 创建 API 网关触发器
  2. 调用网关域名提交任务。

curl 示例如下:

curl --location 'https://api_gateway_address/' \
--header 'Content-Type: application/json' \
--data '{
    "test": "hello veFaaS!"
}'

控制台测试

服务发布成功后,支持在控制台发起函数测试,模拟定时提交任务或通过网关域名提交任务。详情请参见 测试函数

非 WebServer 模式

对于非 WebServer 模式的异步任务,支持通过以下 3 种方式提交异步任务。

定时提交

服务发布成功后,可以给任务 配置 Timer 触发器,实现任务的定时触发执行。

通过 API 网关域名提交

服务发布成功后,可以给服务配置 API 网关触发器,通过调用 API 网关域名提交任务。根据是否修改启动命令,分为以下两种场景:

  • 不自定义启动命令,任务默认通过函数配置的启动命令执行

    1. 创建 API 网关触发器
    2. 调用 API 网关域名提交任务。直接调用网关域名提交任务,无需在请求中携带 Payload。

    curl 示例如下:

    curl -k --location 'https://api_gateway_address/'
    
  • 自定义启动命令,任务通过新的启动命令执行

    1. 创建 API 网关触发器
    2. 调用 API 网关域名提交任务。
      1. 在 POST 请求中通过 Header 'X-Faas-Custom-Task: true' 声明该任务需要使用自定义启动命令。
      2. 在 JSON 格式的 Payload 中,通过 Command 指定启动命令。

    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 网关域名方式提交任务时,支持自定义启动命令。

  1. 在函数详情页面,单击 测试

  2. 在函数测试页面,配置相关参数。

    配置项说明
    触发器类型支持 Timer 触发器API 网关触发器
    启动命令当选择 API 网关触发器 时,支持自定义启动命令。如果为空,则使用函数配置的默认启动命令。
  3. 单击 测试

    任务提交成功后,控制台将返回 RequestID。单击 查看详情,可跳转至异步任务列表,查看当前任务的执行情况。