调用普通云函数
云开发提供了多种 SDK、API 供开发者调用云函数,包括小程序 SDK、JS SDK、Node SDK、HTTP API 等,满足不同场景和平台的需求。
调用方式概览
| 调用方式 | 适用场景 | 特点 |
|---|---|---|
| 小程序 SDK | 微信小程序 | 原生支持,自动携带用户身份 |
| Web SDK | 浏览器环境、前端应用 | 简单易用,自动处理认证 |
| Node.js SDK | 服务端、云函数互调 | 支持服务端调用,功能完整 |
| HTTP API | 跨语言调用、第三方系统集成 | 标准 REST API,支持所有语言 |
| HTTP 访问服务 | 前端直接访问、自定义域名 | 支持自定义路径和域名,可跨域访问 |
调用示例
- 小程序 SDK
- Web SDK
- Node.js SDK
- HTTP API
- HTTP 访问服务
微信小程序可以直接使用 wx.cloud.callFunction API 调用云函数,无需额外配置。
// 基础调用方式
wx.cloud.callFunction({
name: 'hello-world',
data: {
name: 'CloudBase',
message: 'Hello from MiniProgram'
},
success: res => {
console.log('调用成功:', res.result);
},
fail: err => {
console.error('调用失败:', err);
}
});
💡 提示:小程序调用云函数时会自动携带用户的 OPENID,可在云函数中通过
event.userInfo.openId获取。
相关文档
通过 CloudBase Web SDK 调用云函数,适用于浏览器环境和前端应用。
import tcb from '@cloudbase/js-sdk';
// 初始化
const app = tcb.init({
env: 'your-env-id'
});
// 匿名登录(如果需要)
await app.auth().signInAnonymously();
async function callFunction() {
try {
const result = await app.callFunction({
name: 'hello-world',
data: {
name: 'CloudBase',
message: 'Hello from Web'
}
});
console.log('调用成功:', result);
return result.result;
} catch (error) {
console.error('调用失败:', error);
throw error;
}
}
// 使用示例
callFunction().then(result => {
console.log('函数返回:', result);
});
通过 CloudBase Node.js SDK 调用云函数,适用于服务端和云函数互调场景。
const tcb = require('@cloudbase/node-sdk');
// 初始化
const app = tcb.init({
env: 'your-env-id',
secretId: 'your-secret-id', // 可选,用于服务端调用
secretKey: 'your-secret-key' // 可选,用于服务端调用
});
async function callFunction() {
try {
const result = await app.callFunction({
name: 'hello-world',
data: {
name: 'CloudBase',
message: 'Hello from Node.js'
}
});
console.log('调用成功:', result);
return result.result;
} catch (error) {
console.error('调用失败:', error);
throw error;
}
}
通过 HTTP API 调用云函数,支持跨语言访问,适合第三方系统集成。
# 基础调用
curl -L 'https://your-env-id.api.tcloudbasegateway.com/v1/functions/hello-world' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer your-access-token' \
-H 'Content-Type: application/json' \
-d '{
"message": "Hello CloudBase",
"timestamp": 1640995200000
}'
# HTTP 云函数调用
curl -L 'https://your-env-id.api.tcloudbasegateway.com/v1/functions/web-function?webfn=true' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer your-access-token' \
-H 'Content-Type: application/json' \
-d '{
"path": "/api/users",
"method": "GET"
}'
通过 HTTP 访问服务调用云函数,支持自定义域名和路径,适合前端直接访问。
相关文档
- HTTP API 认证 - 了解如何获取和使用访问令牌
- HTTP 访问服务 - 配置自定义域名和访问路径
- 云函数开发指南 - 学习如何编写云函数代码
- 云函数最佳实践 - 了解云函数开发的最佳实践