跳到主要内容

管理云函数

云函数是云开发平台的核心功能之一,有效管理云函数可以提高应用的性能、可靠性和安全性。本文档将指导您如何全面管理云函数的生命周期,包括创建、配置、部署、监控和删除等操作。

目录

管理方式

您可以通过以下两种方式管理云函数:

不同的管理方式适用于不同的场景,控制台管理适合快速操作和可视化配置,而命令行管理则更适合自动化部署和批量操作。

创建云函数

通过控制台创建

  1. 登录云开发平台,进入 云函数管理页面
  2. 点击「新建云函数」按钮
  3. 填写函数名称、运行环境、函数描述等信息
  4. 选择函数模板或从头开始编写代码
  5. 点击「确定」完成创建

创建云函数界面

通过 CLI 创建

使用 CloudBase CLI 工具,您可以通过以下命令创建并部署云函数:

tcb functions:deploy [functionName] --code ./function-code

开发与部署

在线编辑与部署

您可以直接在云开发控制台编辑云函数代码:

  1. 云函数管理页面 选择目标函数
  2. 在代码编辑器中修改代码
  3. 点击「保存并部署」按钮完成部署

在线编辑函数代码

上传代码包部署

对于较复杂的项目,您可以将代码打包后上传:

  1. 将函数代码及依赖打包成 ZIP 文件
  2. 在云函数详情页面,选择「上传 ZIP 包」
  3. 选择本地 ZIP 文件并上传
  4. 点击「保存并部署」完成部署
提示

ZIP 包的根目录应该包含入口文件,例如 Node.js 环境下的 index.js

通过 CLI 更新代码

使用 CLI 工具更新云函数代码:

tcb functions:code:update <functionName> --code ./function-code

函数配置

云函数管理页面 选择目标函数,点击「配置」选项卡,可以调整以下配置项:

基础配置

配置项说明默认值可选范围
内存配置云函数运行时的最大内存限制256MB128MB - 2048MB
超时时间函数最大运行时间,超时将被强制中断20秒1秒 - 900秒
环境变量以键/值对形式定义的环境变量自定义
注意

内存配置会影响函数的性能和计费,请根据实际需求合理设置。

网络配置

公网访问

云函数默认开启公网访问能力,您可以根据安全需求选择关闭。关闭后,函数将无法访问公网资源。

内网访问(VPC 配置)

您可以配置云函数访问 VPC 私有网络:

  • 未配置 VPC:函数实例在独立网络环境中运行,具备外网访问能力
  • 配置 VPC:函数实例在指定 VPC 网络中运行,可访问 VPC 内资源
提示

固定出口 IP

开启此功能后,云函数将获得一个固定的公网出口 IP,该 IP 会与同一命名空间下其他开启此功能的函数共享。

提示

只有云函数开启公网访问时,固定出口 IP 功能才能生效。

通过 CLI 更新配置

使用 CLI 工具更新云函数配置:

tcb functions:config:update [functionName] --memory 512 --timeout 60

函数监控

查看运行日志

您可以通过以下方式查看云函数的运行日志:

  1. 在云函数详情页面,选择「日志」选项卡
  2. 设置时间范围和日志级别
  3. 查看函数执行日志

通过 CLI 查看日志:

tcb functions:log <functionName> --limit 20

监控指标

在云函数详情页面的「监控」选项卡,您可以查看以下关键指标:

  • 调用次数
  • 错误次数
  • 平均执行时长
  • 内存使用情况

删除云函数

通过控制台删除

  1. 云函数管理页面 找到目标函数
  2. 点击「更多」→「删除」
  3. 在确认对话框中输入函数名称确认删除
警告

删除云函数操作不可恢复,删除后函数将不可访问,请谨慎操作。

通过 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 工具文档

常见问题

云函数部署失败怎么办?

  1. 检查代码是否有语法错误
  2. 确认依赖包是否兼容云函数环境
  3. 查看部署日志,定位具体错误原因
  4. 尝试减小部署包大小,云函数部署包有大小限制

云函数执行超时如何解决?

  1. 增加函数超时时间配置
  2. 优化代码执行效率
  3. 对于长时间运行的任务,考虑拆分为多个函数或使用异步执行

如何处理云函数冷启动问题?

  1. 保持函数代码精简,减少不必要的依赖
  2. 使用预置并发实例
  3. 定期预热函数,保持活跃状态

云函数如何访问数据库?

云函数可以通过 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;
};

更多云函数相关问题,请参考 云函数常见问题解答