异步执行

最近更新时间:2024-07-22 11:57:53

我的收藏

使用场景

在音视频转码、ETL 大体量数据处理、AI 推理等单任务重计算的场景下,函数的单实例运行时需要更多算力及更长时间的稳定运行。若函数的调用端长时间阻塞等待执行结果,不仅会持续占用调用方资源,还会对调用链路的稳定性产生较高要求。 云函数 SCF 提供了一种全新的函数运行机制,您可通过 SCF 提供的函数异步执行模式,提升执行超时时间上限和解决现有运行机制的问题。

运行机制

基础原理

函数启用异步执行后,通过同步(例如函数 URL)或异步(例如 COS、CKafka、Timer 等)调用端进行事件调用,函数将以异步执行模式响应事件。 即完成事件调度后立即返回事件的调用标识 RequestId,并结束调用操作,调用端无需阻塞等待。返回 RequestId 的同时,调用引擎将并行下发事件到函数运行时,开启函数逻辑执行。进入异步执行状态后,执行日志将实时上报至日志服务,提供对异步执行事件运行情况的实时反馈。其原理如下图所示:



注意事项

由于运行机制差异
暂不支持切换同步/异步执行模式。仅支持创建函数时选择是否开启“异步执行”功能,函数创建后该配置将锁定,不提供修改更新操作。
暂不支持异步调用时,函数执行过程中报错的重试设置。
异步执行函数执行异常均会触发实例回收。
事件调用成功,返回信息只包含 RequestId。事件执行结果需要在函数代码逻辑中自行实现回调特定的 API 或者发送通知消息。
异步执行目前支持最长执行时长为24小时。如需更长运行时长,可 提交工单 申请。
如果通过函数运行角色获取对其他云服务组件的访问权限,角色密钥有效期最长为 6 小时,如函数实际执行时间超出 6 小时,建议使用永久密钥。
异步运行函数调用 QPS 限制为 1000,超出部分将被限制,造成响应失败。

操作步骤

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务
2. 在主界面上方选择期望创建函数的地域和命名空间,并单击新建,进入函数创建流程。
3. 选择使用模板创建或选择使用从头开始来新建函数。
4. 函数配置页面,展开高级设置,并勾选异步执行。如下图所示:



5. 单击完成即可创建函数。