通过 Serverless Framework 组件,您可轻松完成 Serverless DB 的创建部署管理,并通过 SDK 在云函数中轻松完成数据库的连接访问,基于云上 Serverless 服务,实现“0”配置,极速部署,便捷开发,助力业务实现。
Serverless Framework 目前支持 PostgreSQL 与 NoSQL 两个类型数据库的部署连接,本文介绍如何使用云函数连接 NoSQL DB。
已安装 Serverless Framework,且不低于以下版本。如未安装,请参考 安装 Serverless Framework 完成安装。
Framework Core: 1.67.3
Plugin: 3.6.6
SDK: 2.3.0
Components: 2.30.1
SLS_QcsRole
的运行角色已具备 QcloudTCBFullAccess
策略。如未具备,请前往 访问管理控制台 进行配置。本文以 Node.js 开发语言的函数为例,介绍如何通过 Serverless Framework 组件编写创建函数,创建并访问 NoSQL DB。配置流程如下:
test-NoSQL
文件夹为例。test-NoSQL
下创建文件夹 DB
。DB
文件夹下新建 serverless.yml
文件,并输入以下内容,通过 Serverless Framework 组件完成云开发环境配置。# serverless.yml
component: mongodb
name: mongoDBDemoMongo
org: anycodes
app: mongoDBAPP
stage: dev
inputs:
name: Mydemo
test-NoSQL
下创建文件夹 function
,用于存放业务逻辑代码和相关依赖项。function
下创建文件夹 src
,并在命令行中进入 src
目录,执行以下命令安装 tcb 依赖包。npm install --save tcb-admin-node@latest
src
文件夹下创建文件 index.js
,并输入如下示例代码。在函数中通过 Serverless TCB SDK 调用云开发环境,并在其中完成 NoSQL 数据库的调用。const tcb = require('tcb-admin-node')
const app = tcb.init({
secretId: process.env.SecretId,
secretKey: process.env.SecretKey,
env: process.env.MongoId,
serviceUrl: 'https://tcb-admin.tencentcloudapi.com/admin'
})
const db = app.database()
const _ = db.command
exports.main = async (event, context) => {
await db.createCollection('serverless')
const username = 'serverless'
const collection = db.collection('serverless')
if (username) {
await collection.add({username: username})
}
const userList = await collection.get()
return userList
}
serverless.yml
文件,并在环境变量中填写您的 SecretId 和 SecretKey。若使用如下配置,则会创建免费云开发环境。如您已具备免费云开发环境,请将云开发环境 ID 填入
MongoId
中,否则会出现报错。
component: scf
name: mongoDBDemoSCF
org: anycodes
app: mongoDBAPP
stage: dev
inputs:
name: MongoDBDemo
src: ./src
runtime: Nodejs8.9
region: ap-guangzhou
handler: index.main
environment:
variables:
SecretId: 请填入您的SecretId
SecretKey: 请填入您的SecretKey
MongoId: ${output:${stage}:${app}:mongoDBDemoMongo.EnvId}
test-NoSQL
下,执行以下命令进行部署。sls deploy --all
返回结果如下所示,即为部署成功。serverless ⚡ framework
mongoDBDemoMongo:
Region: ap-guangzhou
Name: Mydemo
EnvID: Mydemo-dyxfxv
FreeQuota: basic
mongoDBDemoSCF:
FunctionName: MongoDBDemo
Description:
Namespace: default
Runtime: Nodejs8.9
Handler: index.main
MemorySize: 128
25s › tcbdemo › Success
您还可通过 Serverless Dashboard,松实现部署项目的实时监控。
在 test-NoSQL
目录下,执行以下命令可移除项目。
sls remove --all
返回如下结果,即为成功移除。
serverless ⚡ framework
4s › test-NoSQL › Success
本页内容是否解决了您的问题?