tencent cloud

文档反馈

连接 NoSQL DB

最后更新时间:2024-11-28 17:42:45

    操作场景

    通过 Serverless Framework 组件,您可轻松完成 Serverless DB 的创建部署管理,并通过 SDK 在云函数中轻松完成数据库的连接访问,基于云上 Serverless 服务,实现“0”配置,极速部署,便捷开发,助力业务实现。
    Serverless Framework 目前支持 PostgreSQLNoSQL 两个类型数据库的部署连接,本文介绍如何使用云函数连接 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 策略。如未具备,请前往 访问管理控制台 进行配置。
    目前云开发 TCB 端仅支持每月最多创建销毁4次环境,请谨慎创建,若超过4次部署将会报错。

    操作步骤

    本文以 Node.js 开发语言的函数为例,介绍如何通过 Serverless Framework 组件编写创建函数,创建并访问 NoSQL DB。配置流程如下:
    1. 身份信息配置:在本地配置腾讯云账户信息。
    2. 创建云开发环境配置文件:通过 Serverless Framework 组件 创建云开发环境,在其中创建并使用 NoSQL DB。
    3. 编写业务代码:通过 Serverless DB SDK 调用数据库,云函数支持直接调用 Serverless DB SDK,创建 NoSQL DB 并进行管理操作。
    4. 部署与调试:通过 Serverless Framework 部署项目至云端,并通过云函数控制台进行测试。
    5. 移除项目:可通过 Serverless Framework 移除项目。

    身份信息配置

    1. 在本地建立目录,用于存放代码及依赖模块。本文以 test-NoSQL 文件夹为例。
    2. Serverless Framework 支持以下2种方式配置身份信息,请按需选择:
    执行以下命令,并进行身份验证。
    serverless login
    test-NoSQL 下创建 .env 文件,按照以下内容配置对应的腾讯云 SecretId、SecretKey。
    # .env
    TENCENT_SECRET_ID=xxx // 您账号的 SecretId
    TENCENT_SECRET_KEY=xxx // 您账号的 SecretKey
    说明:
    如果没有腾讯云账号,请 注册新账号
    如果已有腾讯云账号,请确保您的账号已经授权了 AdministratorAccess 权限。同时,您可在 API 密钥管理 中获取 SecretId 和 SecretKey。

    创建云开发环境配置文件

    1. test-NoSQL 下创建文件夹 DB
    2. DB 文件夹下新建 serverless.yml 文件,并输入以下内容,通过 Serverless Framework 组件完成云开发环境配置。
    # serverless.yml
    component: mongodb
    name: mongoDBDemoMongo
    org: anycodes
    app: mongoDBAPP
    stage: dev
    inputs:
    name: Mydemo

    编写业务代码

    1. test-NoSQL 下创建文件夹 function,用于存放业务逻辑代码和相关依赖项。
    2. 在文件夹 function 下创建文件夹 src,并在命令行中进入 src 目录,执行以下命令安装 tcb 依赖包
    npm install --save tcb-admin-node@latest
    3. 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
    }
    4. 完成业务代码编写后,创建 serverless.yml 文件,并在环境变量中填写您的 SecretIdSecretKey
    说明:
    若使用如下配置,则会创建免费云开发环境。如您已具备免费云开发环境,请将云开发环境 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}

    部署与调试

    1. 使用命令行在 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
    2. 部署成功后,您可通过 云函数控制台,查看并进行函数调试。测试步骤请参见 云端测试,测试成功如下图所示:
    
    
    说明:
    您还可通过 Serverless Dashboard,松实现部署项目的实时监控。

    移除项目

    test-NoSQL 目录下,执行以下命令可移除项目。
    sls remove --all
    返回如下结果,即为成功移除。
    serverless ⚡ framework
    4s › test-NoSQL › Success
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持