管理云函数
云函数是云开发平台的核心功能之一,有效管理云函数可以提高应用的性能、可靠性和安全性。本文档将指导您如何全面管理云函数的生命周期,包括创建、配置、部署、监控和删除等操作。
目录
管理方式
您可以通过以下两种方式管理云函数:
- 控制台管理:使用云开发平台 云函数管理页面 进行可视化操作
- 命令行管理:使用 CloudBase CLI 工具 进行命令行操作
不同的管理方式适用于不同的场景,控制台管理适合快速操作和可视化配置,而命令行管理则更适合自动化部署和批量操作。
创建云函数
通过控制台创建
- 登录云开发平台,进入 云函数管理页面
- 点击「新建云函数」按钮
- 填写函数名称、运行环境、函数描述等信息
- 选择函数模板或从头开始编写代码
- 点击「确定」完成创建
通过 CLI 创建
使用 CloudBase CLI 工具,您可以通过以下命令创建并部署云函数:
tcb functions:deploy [functionName] --code ./function-code
开发与部署
在线编辑与部署
您可以直接在云开发控制台编辑云函数代码:
- 在 云函数管理页面 选择目标函数
- 在代码编辑器中修改代码
- 点击「保存并部署」按钮完成部署
上传代码包部署
对于较复杂的项目,您可以将代码打包后上传:
- 将函数代码及依赖打包成 ZIP 文件
- 在云函数详情页面,选择「上传 ZIP 包」
- 选择本地 ZIP 文件并上传
- 点击「保存并部署」完成部署
ZIP 包的根目录应该包含入口文件,例如 Node.js 环境下的 index.js
。
通过 CLI 更新代码
使用 CLI 工具更新云函数代码:
tcb functions:code:update <functionName> --code ./function-code
函数配置
在 云函数管理页面 选择目标函数,点击「配置」选项卡,可以调整以下配置项:
基础配置
配置项 | 说明 | 默认值 | 可选范围 |
---|---|---|---|
内存配置 | 云函数运行时的最大内存限制 | 256MB | 128MB - 2048MB |
超时时间 | 函数最大运行时间,超时将被强制中断 | 20秒 | 1秒 - 900秒 |
环境变量 | 以键/值对形式定义的环境变量 | 无 | 自定义 |
内存配置会影响函数的性能和计费,请根据实际需求合理设置。
网络配置
公网访问
云函数默认开启公网访问能力,您可以根据安全需求选择关闭。关闭后,函数将无法访问公网资源。
内网访问(VPC 配置)
您可以配置云函数访问 VPC 私有网络:
- 未配置 VPC:函数实例在独立网络环境中运行,具备外网访问能力
- 配置 VPC:函数实例在指定 VPC 网络中运行,可访问 VPC 内资源
- 配置 VPC 后如需外网访问能力,请确认 VPC 网络中配置了 公网网关 或 NAT 网关
- 有关 VPC 网络配置的更多信息,请参考 VPC 私有网络说明
- 关于云函数网络配置的详细说明,请参考 网络配置详情
固定出口 IP
开启此功能后,云函数将获得一个固定的公网出口 IP,该 IP 会与同一命名空间下其他开启此功能的函数共享。
只有云函数开启公网访问时,固定出口 IP 功能才能生效。
通过 CLI 更新配置
使用 CLI 工具更新云函数配置:
tcb functions:config:update [functionName] --memory 512 --timeout 60
函数监控
查看运行日志
您可以通过以下方式查看云函数的运行日志:
- 在云函数详情页面,选择「日志」选项卡
- 设置时间范围和日志级别
- 查看函数执行日志
通过 CLI 查看日志:
tcb functions:log <functionName> --limit 20
监控指标
在云函数详情页面的「监控」选项卡,您可以查看以下关键指标:
- 调用次数
- 错误次数
- 平均执行时长
- 内存使用情况
删除云函数
通过控制台删除
- 在 云函数管理页面 找到目标函数
- 点击「更多」→「删除」
- 在确认对话框中输入函数名称确认删除
删除云函数操作不可恢复,删除后函数将不可访问,请谨慎操作。
通过 CLI 删除
使用 CLI 工具删除云函数:
tcb functions:delete [functionName]
使用 CLI 工具管理云函数
CloudBase CLI 工具提供了全面的云函数管理命令,可以实现自动化部署和管理:
# 展示云函数列表
tcb functions:list [options]
# 下载云函数代码
tcb functions:download [options] <functionName> [dest]
# 部署云函数
tcb functions:deploy [options] [functionName]
# 删除云函数
tcb functions:delete [options] [functionName]
# 获取云函数信息
tcb functions:detail [options] [functionName]
# 更新云函数代码
tcb functions:code:update [options] <functionName>
# 更新云函数配置
tcb functions:config:update [options] [functionName]
# 拷贝云函数
tcb functions:copy [options] <functionName> <newFunctionName>
# 打印云函数日志
tcb functions:log [options] <functionName>
# 创建云函数触发器
tcb functions:trigger:create [options] [functionName]
# 删除云函数触发器
tcb functions:trigger:delete [options] [functionName] [triggerName]
# 触发云端部署的云函数
tcb functions:invoke [options] [functionName]
# 本地运行云函数(当前仅支持 Node)
tcb functions:run [options]
更多详细信息和高级用法,请参考 CloudBase CLI 工具文档。
常见问题
云函数部署失败怎么办?
- 检查代码是否有语法错误
- 确认依赖包是否兼容云函数环境
- 查看部署日志,定位具体错误原因
- 尝试减小部署包大小,云函数部署包有大小限制
云函数执行超时如何解决?
- 增加函数超时时间配置
- 优化代码执行效率
- 对于长时间运行的任务,考虑拆分为多个函数或使用异步执行
如何处理云函数冷启动问题?
- 保持函数代码精简,减少不必要的依赖
- 使用预置并发实例
- 定期预热函数,保持活跃状态
云函数如何访问数据库?
云函数可以通过 SDK 直接访问云开发数据库,无需额外的认证配置。示例代码:
const tcb = require('@cloudbase/node-sdk');
const app = tcb.init();
const db = app.database();
exports.main = async (event, context) => {
const collection = db.collection('users');
const result = await collection.get();
return result;
};
更多云函数相关问题,请参考 云函数常见问题解答。