本文章将以 QA 方式记录在使用 SCF 产品过程中的可能会遇见的问题解答,将不定期更新。
常见问题官网文档
函数配额限制问题
参考文档:官网 配额限制说明 ,可提工单提升配额参考 配额超限管理。
云函数响应非 200 状态码原因概览
参考文档:官网 云函数状态码 。
云函数调用常见错误代码原因概览
参考文档:官网 常见错误码解决方法。
云函数官网常见问题 QA
参考文档:官网 常见问题。
常见问题具体案例
Typescript 项目部署成功,但是所有请求都报 500 错误
原因:云函数 JS 依赖环境仅能正常运行 JS 代码,需要提前将 TS 代码转译成 JS 代码后部署。
云函数写操作报 “read-only file system” 错误日志
可能原因:为了安全考虑,运行环境内除/tmp
目录下可写(可写 512M),其他均限制为只读,参考 函数运行限制。
云函数调用失败日志显示“The request with exception: 已取消一个任务。”
可能原因:
1. 调用端(客户端)主动在任务结束前取消调用。
2. 中间转发层超时取消调用,如 APIGW 网关转发超过设置的超时时间被取消,需要根据业务同步调用(时间)情况调大。
云函数部署成功,但调用仅报 {"errorCode": -1, "errorMessage": "","statusCode": 443} 错误信息
可能原因:函数部署时依赖版本或库有问题,导致业务程序无法正常启动。
偶现函数调用一直显示运行中,计费和计时均显示 0
可能原因:
1. 同步调用的函数的冷启动 运行时间 > APIGW超时时间导致APIGW 主动结束调用,从而卡在运行中,解决办法是调大 APIGW超时时间。
2. 也有可能是同步调用的客户端中途中断调用了导致。
控制台代码编辑器时常白屏 、加载慢等问题
可能原因:可能是前端缓存问题,按照以下步骤可恢复:
1、重置工作空间。
2、重置完之后,右下角切换到旧版编辑器
3、此时应该可以正常显示文件,然后再切换切换到新版编辑器可以恢复使用。
通过云 API 接口调用云函数时间太长如何解决?
解决办法: 如果函数本身运行时间较长,建议使用异步调用(默认为同步调用),异步调用参数指定参考:运行函数。
MYSQL 数据库备份函数执行一次备份任务但触发了多个函数调用
原因:数据库备份逻辑是备份近3天数据, 所以可能会创建多个子函数上传任务。
删除 VPC 网络实例时显示 还有 “HAVIP” 资源导致无法删除
原因: 可能有相关 SCF 实例关联了该 VPC,需要先删除 SCF 实例。
云函数操作 CFS 文件,报错:Permission denied: '/xxx'
可能原因:云函数默认普通用户来读写 CFS 文件目录, 被操作的已有目录可能是用户与用户组都是root 创建的,导致云函数这边没有权限操作相关的目录,解决办法是业务通过 SCF 函数创建新目录使用。
云函数引用层的模块库报错
可能原因:代码中会跟据内置的环境变量查找相关模块库路径,先引用了环境变量靠前的同名有问题的库。
A 云函数中使用 scf 命令行部署 B 函数代码注意事项
1. 注意需要在项目目录下配置.env
授权文件,参考:账号和权限配置。
2. 注意A 函数配置的环境变量 key 不要与要部署的B函数冲突,会导致在部署B函数时使用A函数环境变量的值。
通过别名的apigw(触发器) 调用函数不显示调用记录
可能原因:流量绑定在版本下,没有在别名下,需要把流量设置在别名下,别名、版本绑定的两个触发器都可以使用。产品逻辑参考:别名管理相关操作 、版本管理概述。
函数写tmp目录提示存储空间不足,但实际写入的文件大小很小
可能原因:之前写入的文件可能已经被删除但是还在被进程使用,导致句柄没有释放,磁盘空间也会一直占用。