常见问题
性能相关
调用云函数耗时较长
可以通过排查云函数日志分析耗时位置。如果日志包含 Coldstart: xxxms 类日志,则为云函数冷启动耗时。如果希望解决该部分耗时,可以参考 预置并发。
云函数执行超时怎么处理?
超时客户端会直接断开连接并报错,建议控制函数执行时间,尽量不要把耗时长的操作放在客户端直接调用的云函数内。
如果需要在云函数执行一些长耗时的处理怎么办?
为了保证客户端的体验,不允许直接调用长耗时的云函数。
- 建议在云控制台调整为需要的超时时间(上限为 60s),在云函数内使用 callback() 返回成功,客户端不等待执行结果。
- 云函数会在超时时间内继续执行直到完毕或超时,将执行结果写入数据库等存储服务,再在客户端获取该结果。
配置相关
调整云函数内存配置不生效
云函数配置对 $LATEST 版本生效。如果请求的不是 $LATEST 版本,则配置修改不会生效。
解决方案:
- 确保请求的是
$LATEST版本 - 或者基于
$LATEST版本发布新版本,新版本会使用当前的快照,包含代码和配置(超时时间、环境变量、内存配置等)
云函数内置模块怎么使用?
- 云函数内置模块已经集成于运行环境,可以直接使用。
- 如果内置模块的版本不能满足需求,可以自行安装模块到云函数内,默认会被优先使用。
目前已支持的内置模块为 request 2.87.1 。
云函数内怎么保存密钥等配置信息
云函数是无状态的,配置信息建议存储在云开发的数据库服务
部署相关
为什么云函数更新时,返回 exit status 11?
请检查一下函数的打包方式和入口方法。
- 云函数创建时,默认执行方法是 index.main ,其入口文件为 index.js ,且 index.js 必须用 export 暴露出 main 方法。
- 云函数更新时,如果选择用 zip 包上传,打包的方式需要注意,要保证 zip 包解压后的第一级内容必须包含入口文件(常见的错误打包方式是,将某个云函数代码放在某个文件夹内,并针对这个文件夹进行压缩,这样解压出来的文件是一个文件夹,不包含入口文件 index.js )。
Windows 环境下打包云函数层部署失败
在 Windows 环境下打包云函数层(Layer)的 zip 文件后,部署到云函数时可能会遇到 An internal error has occurred 报错。
问题现象
在 Windows 系统下使用系统自带的压缩工具或 PowerShell 的 Compress-Archive 命令打包云函数层后,上传部署时报错:
函数更新失败
An internal error has occurred. Retry your request, but if the problem persists, contact us with details
问题原因
Windows 系统打包的 zip 文件,内部的路径分隔符使用的是反斜杠 \,而云函数的构建环境是 Linux 系统,要求路径分隔符为正斜杠 /。
这会导致 Linux 环境无法正确解析 zip 包中的文件路径,从而引发部署失败。
解决方案
方案一:使用 7-Zip 打包(推荐)
7-Zip 是一个开源的压缩工具,打包时会使用 Unix 风格的路径分隔符。
- 下载安装 7-Zip
- 右键选择要打包的文件夹
- 选择 "7-Zip" -> "添加到压缩包"
- 压缩格式选择 "zip"
方案二:使用 WSL 打包
如果已安装 WSL (Windows Subsystem for Linux),可以在 WSL 环境中使用 zip 命令打包:
# 进入 WSL 环境
wsl
# 进入层文件所在目录
cd /mnt/c/your/layer/path
# 使用 zip 命令打包
zip -r layer.zip ./*
方案三:使用 Git Bash 打包
Git for Windows 自带的 Git Bash 也可以使用 Unix 风格的 zip 命令:
# 打开 Git Bash,进入层文件目录
cd /c/your/layer/path
# 打包
zip -r layer.zip ./*
调试相关
云函数测试时,部分日志丢失了?
- 云函数测试时,如果以同步调用的方式(超时时间小于 20 秒),返回的日志最多为 4k,超过 4k 的日志不显示。
- 如果以异步调用的方式(超时时间大于或等于 20 秒),返回的日志最多为 6M,超过 6M 的日志不显示。
为什么云函数中调用其他云函数报错 socket timeout,但是被调用的云函数实际是有执行成功并且返回数据的?
您可在页面上的函数配置-基本信息中,为云函数设置超时时长。同时,如果使用到 SDK,SDK 默认的超时时间是 15 秒,两者以最短时间为准。
使用相关
云函数如何调用云函数
目前只可以通过云开发提供的 SDK 调用,没有其它方式
不同的云函数可以共用代码文件(目录)吗
未上线
Node.js 云函数同时支持异步和同步写法吗
是的,推荐使用同步(async/await)写法。
云函数 HTTP 访问配置身份验证后报 MISSING_CREDENTIALS 错误
当云函数配置了 HTTP 访问服务后,在环境配置中对该云函数开启身份认证,会导致原先可直接访问的 URL 报 MISSING_CREDENTIALS 错误。
问题现象
- 云函数已配置 HTTP 访问服务路径,可通过 URL 直接访问
- 在环境配置中对该云函数开启身份认证后
- 访问该 URL 返回
MISSING_CREDENTIALS错误
问题原因
开启身份验证后,所有请求都需要携带有效的身份凭证(如 Access Token 或 API Key)才能访问云函数。这是云开发的安全机制,用于保护云函数不被未授权访问。
解决方案
方案一:使用 Access Token 认证
在请求头中携带 Access Token:
// 先通过登录获取 Access Token
const response = await fetch('https://your-env-id.api.tcloudbasegateway.com/v1/functions/your-function-name', {
headers: {
'Authorization': 'Bearer your-access-token'
}
});
Access Token 获取方法请参考 AccessToken 使用指南
方案二:使用 API Key 认证
如果是服务端调用,可以使用 API Key:
const response = await fetch('https://your-env-id.api.tcloudbasegateway.com/v1/functions/your-function-name', {
headers: {
'Authorization': 'Bearer your-api-key'
}
});
方案三:使用 Publishable Key 认证
如果是客户端公开访问场景,可以使用 Publishable Key:
const response = await fetch('https://your-env-id.api.tcloudbasegateway.com/v1/functions/your-function-name', {
headers: {
'Authorization': 'Bearer your-publishable-key'
}
});
方案四:关闭身份验证
如果该云函数需要公开访问,可以关闭身份验证:
- 登录 云开发控制台
- 进入【环境】-【HTTP 访问服务】
- 找到对应的云函数路径,关闭身份验证
关闭身份验证意味着任何人都可以访问该云函数,请确保云函数内部有适当的安全校验逻辑。
在线开发相关
在线编辑器的 Python 运行时环境与云函数实际运行环境不一致
问题原因
在线编辑器的开发环境是独立环境,与云函数的实际运行环境是分离的。在线编辑器环境主要用于代码编写和简单开发,不会因为删除或重新创建云函数而自动同步运行时版本。
同时,在线编辑器需要从运行环境下载代码后才能进行在线开发,因此可能会存在多个云函数代码同时下载到在线编辑器的情况。
解决方案
在线开发时保持在当前函数目录操作 - 在线编辑器中可能存在多个云函数的代码,请确保在当前云函数所在的代码目录进行操作即可,不影响云函数的实际运行
本地开发部署(推荐) - 如果对 Python 小版本有强依赖要求,建议在本地开发环境中使用对应的 Python 版本进行开发,然后通过控制台或命令行工具部署到云函数
云函数的实际运行环境与在线编辑器的开发环境是独立的。创建 Python 3.10 的云函数后,该函数在云端的实际运行环境就是 Python 3.10,不受在线编辑器环境版本的影响。
云函数等在线开发功能无法正常使用
问题原因
云开发平台中的在线开发使用的编辑器是 CloudStudio,并依赖于"Tencent CloudBase Toolkit V2"扩展来实现云开发的在线开发能力。因此需要确保"Tencent CloudBase Toolkit V2"这一扩展始终是最新版本
解决方式
- 尝试重新打开在线编辑器
当您重新打开在线编辑器时,系统会自动检测并更新扩展,更新成功后会提示刷新,如下图所示:


- 手动更新扩展
有时候,由于扩展市场的网络问题可能导致自动更新失败,在这种情况下,您可以尝试手动更新扩展,如下图所示:

如果更新依然失败,可以按照提示将扩展下载到本地,然后将其拖到编辑器中进行安装,如下图所示:

在云开发平台删除云函数后,在线编辑器仍存在这个云函数
原因分析
在云开发平台中,云函数属于部署服务,而在线编辑器用于存放云函数的代码。这两者相互独立,删除云函数部署并不会自动删除对应的代码
打个比方,我们在本地编写一个服务的代码,然后将其部署到线上环境。当不再需要这个服务时,我们可以把服务下线,也就是删除部署。但此时,本地的服务代码依然会保留,并不会因为线上服务的删除而自动消失。
云开发平台的在线编辑器,其实就相当于本地编辑器的远程版本,本质上只是换了个地方编写代码,其代码存储机制和本地编写、部署的模式原理一致
解决方法
若你已明确不再需要某个云函数的代码,直接在在线编辑器中删除该云函数代码就行
在云开发平台删除并重新创建了同名的云函数后,在线编辑器仍显示之前的版本
原因分析
这与在线编辑器的自动下载策略有关。当工作空间中已经存在同名的云函数时,为了避免代码被覆盖,在线编辑器会自动跳过下载过程,并提示用户手动下载更新

解决方法
通过手动下载方式同步云函数代码即可
具体步骤参考云函数在线开发手册中的下载部分
创建了函数型云托管后,进入在线开发时下载失败
原因分析
函数型云托管是基于云托管的。在没有部署历史的情况下,在线开发无法下载到对应的代码包,所以会出现以下提示

解决方法
请耐心等待云函数的部署完成,然后再进入在线开发进行操作
在线开发的功能操作菜单在哪里?
请参考 云函数在线开发
pnpm 安装依赖时报错

原因分析
项目的 package.json 中声明的 pnpm 版本与当前环境安装的 pnpm 版本不一致
解决方法
打开终端,执行命令 corepack enable 即可
在线编辑器提示磁盘使用率过高
当在线编辑器的磁盘空间使用率超过 85% 时,您将会看到以下提示:
您可以点击【自动清理缓存】按钮,清理 npm / yarn / pnpm / pip 等依赖缓存。同时请检查工作空间中是否存在较大的文件(如压缩包、二进制安装文件等),建议仅保留必要的代码文件。

若磁盘空间使用率超过 90%,为了确保在线编辑器的正常运行,系统将自动进行缓存清理。

您可以通过执行命令 "df -h" 来查看工作空间的磁盘使用情况。

获取临时凭证超时,在线编辑器部分功能将无法正常使用

原因分析
当遇到上述提示时,首先请检查在线编辑器中是否已安装"Tencent CloudBase Toolkit V2"扩展。如果未安装,请在扩展市场中搜索关键字"Tencent CloudBase Toolkit V2"来查找并安装该扩展,然后刷新页面重试
如果不是以上问题,那么很可能是在线编辑器的磁盘空间不足,导致扩展执行异常,请根据以下解决方法进行处理
解决方法
通常,进入在线编辑器时会有相关提示,参考在线编辑器提示磁盘使用率过高
如果没有提示,您可以先打开终端,执行命令 df -h 查看磁盘的剩余空间

如果发现磁盘空间已经所剩无几,可以先尝试运行以下命令清除缓存,同时清理工作空间中非必要的大文件
npm cache clean --force
pnpm store prune
yarn cache clean
pip cache purge
最后,再次通过 df -h 命令检查磁盘空间使用率是否有所降低。如果空间使用率有所降低,可重新进入在线编辑器进行操作
打开云函数调试服务链接时提示登录

原因分析
调试链接仅在在线编辑器内有效。为了防止外部访问,调试链接只能在【测试面板】内进行访问,其他位置均无法访问
解决方法
请使用在线编辑器调试时自动打开的【测试面板】进行调试操作,如下图所示:
