测试、日志与监控
本文档详细介绍如何使用云开发提供的测试、日志查看和监控功能,帮助开发者高效调试和监控云函数运行状态。
前置条件
在开始测试和监控云函数之前,请确保:
- 已创建腾讯云开发环境
- 已部署至少一个云函数
- 具有相应的访问权限
云函数测试
云开发提供了多种云函数测试方式,支持在线调试和本地测试,帮助开发者更加方便地调试代码。
- 云开发 CloudBase 控制台
- 微信开发者工具
控制台测试
通过云开发控制台可以快速测试云函数的执行效果。
测试步骤
- 在控制台的对应云函数管理面板中,点击「测试」按钮,打开测试弹窗
- 选择测试模板或自定义测试参数
- 点击「执行」运行测试
- 查看运行结果和日志输出
测试参数配置
使用模板参数
- 点击「提交方法」下拉菜单,选择测试函数的模板方法
- 模板参数在测试时作为
event
参数传递给函数
自定义参数 在测试参数编辑器中输入 JSON 格式的测试数据:
{
"name": "test",
"data": {
"key": "value",
"number": 123
}
}
本地调试工具
除了可视化测试功能,还可以使用命令行工具 scf-cli 进行本地调试:
# 安装 scf-cli
npm install -g scf-cli
# 本地调试函数
scf local invoke --template template.yaml --event event.json
日志查看
云开发提供了完善的日志系统,帮助开发者快速定位和解决问题。
日志功能特点
- 实时日志:支持实时查看函数执行日志
- 结构化展示:日志信息结构化展示,便于分析
- 多维度筛选:支持按时间、状态等条件筛选日志
- 详细信息:包含请求ID、执行时间、内存使用等详细信息
- 云开发 CloudBase 控制台
- 微信开发者工具
日志最佳实践
结构化日志记录
在函数代码中使用结构化的日志记录方式:
exports.main = async (event, context) => {
const requestId = context.requestId;
// 记录请求开始
console.log(JSON.stringify({
level: 'INFO',
requestId,
message: '函数开始执行',
timestamp: new Date().toISOString(),
event: event
}));
try {
// 业务逻辑
const result = await processData(event);
// 记录成功结果
console.log(JSON.stringify({
level: 'INFO',
requestId,
message: '函数执行成功',
result: result
}));
return result;
} catch (error) {
// 记录错误信息
console.error(JSON.stringify({
level: 'ERROR',
requestId,
message: '函数执行失败',
error: {
message: error.message,
stack: error.stack
}
}));
throw error;
}
};
日志级别使用
合理使用不同的日志级别:
// 普通信息
console.log('普通日志信息');
// 重要信息
console.info('重要信息级别日志');
// 警告信息
console.warn('警告级别日志');
// 错误信息
console.error('错误级别日志');
注意事项
- 避免在日志中记录敏感信息(如密码、密钥等)
- 合理控制日志输出量,避免产生过多日志
- 使用结构化日志格式,便于后续分析和处理
监控数据
云开发提供了丰富的监控指标,帮助开发者了解云函数的运行状况和性能表现。
监控指标
云函数监控包含以下核心指标:
- 调用次数:函数被调用的总次数
- 运行时间:函数执行的平均时间和最大时间
- 错误次数:函数执行失败的次数
- 成功率:函数执行成功的百分比
- 内存使用:函数运行时的内存占用情况
- 并发数:同时执行的函数实例数量