AnyService 轻量服务器如何访问云数据库和云存储
使用 AnyService 将服务部署到轻量服务器后,需要访问云开发的云数据库或云存储。本文介绍正确的认证方式和访问方法。
问题背景
AnyService 提供的是小程序到轻量服务器的访问通道。在轻量服务器中运行的后端服务(如 Node.js、.NET 等)如果需要访问云开发的云数据库或云存储,无法像云函数那样直接初始化就能使用。
解决方案
方案一:使用 API Key 访问(推荐)
通过服务端 API Key 进行认证访问:
1. 获取 API Key
- 登录 云开发控制台
- 进入【环境】-【环境设置】-【API 密钥】
- 创建服务端 API Key
2. 使用 API Key 初始化 SDK
// Node.js 示例
const cloudbase = require("@cloudbase/node-sdk");
const app = cloudbase.init({
env: "your-env-id",
secretId: "your-secret-id",
secretKey: "your-secret-key",
});
// 访问数据库
const db = app.database();
const result = await db.collection("users").get();
// 访问云存储
const storage = app.storage();
方案二:使用 Publishable Key
对于前端或公开访问场景,可以使用 Publishable Key:
const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({
env: "your-env-id",
appSign: "your-app-sign",
appSecret: {
appAccessKeyId: "your-key-id",
appAccessKey: "your-access-key",
},
});
网络说明
- 轻量服务器访问云开发的云数据库和云存储,目前都是走外网
- 不需要配置内网互联
- 如果访问的是腾讯云的其他数据库产品(如云数据库 MySQL),则需要配置内网互联
注意事项
- 保护好密钥:API Key 具有完整的访问权限,请妥善保管
- 环境变量存储:建议将密钥存储在环境变量中,不要硬编码
- 安全规则:数据库安全规则对服务端 API Key 不生效,请在代码中做好权限控制