最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 国内首款 Serverless MySQL 数据库重磅发布!

    正文概述 掘金(腾讯云Serverless)   2021-02-01   364

    12 月 20 日的 Techo 大会上,腾讯云重磅发布了自研云原生数据库 TDSQL-C Serverless(原 CynosDB Serverless),这是国内首款计算和存储全 Serverless 架构的云原生 MySQL, TDSQL-C Serverless能够让企业用户像使用水、电、煤一样使用云数据库,用户不需为数据库的闲时进行付费,而是按照数据库资源响应单元实际使用量进行计费,将腾讯云云原生技术普惠用户。

    作为 Serverless 生态中的重要一环,TDSQL-C Serverless 的发布也补齐了 Serverless 架构里 MySQL 数据库的空缺。因此,Serverless Framework 同步发布了 TDSQL-C Serverless 组件。这样,腾讯云就拥有了一套Serverless 全栈的核心解决方案,包括 Serverless API网关、腾讯云的 Serverless 函数计算服务、Serverless 对象存储和数据库。在数据存储层可以通过 TDSQL-C Serverless 直接对数据库连接并进行 SQL 操作。

    TDSQL-C Serverless(MySQL 数据库),具备完全自动化的扩容能力,能够随着用户业务的请求数的增加和减少,智能化“膨胀”和“缩小”,实现资源的自动“吞吐”。从此以后,开发者可以真正的完成 Serverless 应用的开发,专注于业务本身,免除运维,按需付费,享受 Serverless 架构带来的众多优势。

    另外,TDSQL-C Serverless 数据库在试用期间完全免费。

    服务特性

    • 自动驾驶(Autopilot):

    数据库根据业务负载自动启动停止,无感扩缩容,扩缩容过程不会断开连接。

    • 按使用计费(Utility Pricing):

    按实际使用的计算和存储量计费,不用不付费,按秒计量,按小时结算。

    适用场景

    • 开发、测试环境等低频数据库使用场景。
    • 物联网(IoT)、边缘计算等不确定负载场景。
    • 中小企业建站等 SaaS 应用场景。

    下面的教程将以 Node.js 开发语言的函数,指导您如何快速创建 TDSQL-C Serverless MySQL 实例,并在云函数中进行调用:

    操作步骤

    1. 配置环境变量
    2. 配置私有网络: 通过 Serverless Framework VPC 组件 创建 VPC 和 子网,支持云函数和数据库的网络打通和使用。
    3. 配置 Serverless DB: 通过 Serverless Framework Cynosdb 组件 创建 MySQL 实例,为云函数项目提供数据库服务。
    4. 编写业务代码: 通过 Serverless DB SDK 调用数据库,云函数支持直接调用 Serverless DB SDK,连接 PostgreSQL 数据库进行管理操作。
    5. 部署应用: 通过 Serverless Framework 部署项目至云端,并通过云函数控制台进行测试。
    6. 移除项目: 可通过 Serverless Framework 移除项目。

    1. 配置环境变量

    在本地建立目录,用于存放代码及依赖模块。本文以 test-MySQL 文件夹为例。

    mkdir test-MySQL && cd test-MySQL
    

    由于目前 TDSQL-C Serverless 只支持 ap-beijing-3ap-guangzhou-4ap-shanghai-2ap-nanjing-1 四个区域,所以这里还需要配置下,只需要在项目根目录下创建 .env 文件,然后配置 REGIONZONE 两个环境变量:

    # .env
    REGION=xxx  
    ZONE=xxx 
    

    2. 配置私有网络

    test-MySQL 目录下创建文件夹 VPC

    mkdir VPC && cd VPC
    

    同时在 VPC 中新建 serverless.yml 文件,使用 VPC 组件完成私有网络和子网的创建。

    serverless.yml 示例内容如下,全量配置参考产品文档

    #serverless.yml
    org: mysql-app
    app: mysql-app
    stage: dev
    component: vpc # (required) name of the component. In that case, it's vpc.
    name: mysql-app-vpc # (required) name of your vpc component instance.
    inputs:
      region: ${env:REGION}
      zone: ${env:ZONE}
      vpcName: serverless-mysql
      subnetName: serverless-mysql
    

    3. 配置 Serverless DB

    test-MySQL 下创建文件夹 DB,并在 DB 文件夹下新建 serverless.yml 文件,并输入以下内容,通过 Serverless Framework 组件完成云开发环境配置。

    serverless.yml 示例内容如下,全量配置参考产品文档

    # serverless.yml 
    org: mysql-app
    app: mysql-app
    stage: dev
    component: cynosdb
    name: mysql-app-db
    inputs:
      region: ${env:REGION}
      zone: ${env:ZONE}
      vpcConfig:
        vpcId: ${output:${stage}:${app}:mysql-app-vpc.vpcId}
        subnetId: ${output:${stage}:${app}:mysql-app-vpc.subnetId}
    

    4. 编写业务代码与配置文件

    test-MySQL 下创建文件夹 src,用于存放业务逻辑代码和相关依赖项。并在 src 文件夹下创建文件 index.js,输入如下示例代码。在函数中通过 SDK 连接数据库,并在其中完成 MySQL 数据库的调用。

    exports.main_handler = async (event, context, callback) => {
      var mysql      = require('mysql2');
      var connection = mysql.createConnection({
        host     : process.env.HOST,
        user     : 'root',
        password : process.env.PASSWORD
      });
      connection.connect();
      connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
        if (error) throw error;
        console.log('The solution is: ', results[0].solution);
      });
      connection.end();
     }
    

    安装所需依赖模块:

    npm install mysql2
    

    完成业务代码编写和依赖安装后,创建 serverless.yml 文件,示例文件如下:

    org: mysql-app
    app: mysql-app
    stage: dev
    component: scf
    name: mysql-app-scf
    
    inputs:
      src: ./
      functionName: ${name}
      region: ${env:REGION}
      runtime: Nodejs10.15
      timeout: 30
      vpcConfig:
        vpcId: ${output:${stage}:${app}:mysql-app-vpc.vpcId}
        subnetId: ${output:${stage}:${app}:mysql-app-vpc.subnetId}
      environment:
        variables:
          HOST: ${output:${stage}:${app}:mysql-app-db.connection.ip}
          PASSWORD: ${output:${stage}:${app}:mysql-app-db.adminPassword}
    

    5. 快速部署

    完成创建后,项目目录结构如下:

       ./test-MySQL
       ├── vpc
       │   └── serverless.yml # vpc 配置文件
       ├── db
       │   └── serverless.yml # db 配置文件
       ├── src
       │   ├── serverless.yml # scf 组件配置文件
       │   ├── node_modules # 项目依赖文件
       │   └── index.js # 入口函数
       └── .env # 环境变量文件
    

    使用命令行在 test-MySQL 下,执行以下命令进行部署。

    sls deploy
    

    返回结果如下所示,即为部署成功。

    mysql-app-vpc: 
      region:        xxx
      zone:          xxx
      vpcId:         xxxx-xxx
      ...
    
    mysql-app-db: 
      dbMode:        xxxx
      region:        xxxx
      zone:          xxxx
      ...
    
    mysql-app-scf: 
      functionName:  xxxx
      description:   xxx
      ...
    
    59s › test-MySQL › "deploy" ran for 3 apps successfully.
    
    

    部署成功后,您可通过 云函数控制台,查看并进行函数调试,测试成功如下图所示:

    国内首款 Serverless MySQL 数据库重磅发布!

    移除项目

    test-MySQL 目录下,执行以下命令可移除项目。

    sls remove
    

    返回如下结果,即为成功移除。

    serverless ⚡ framework
    4s › test-MySQL › Success
    

    除了通过组件一键创建所有资源外,您也可以通过控制台完成 Serverless 版本 MySQL 数据库的创建,并在云函数中正常使用 SDK 的方式完成调用。

    • 详情参考:https://cloud.tencent.com/document/product/583/38012
    • TDSQL-C Serverless 产品文档:https://cloud.tencent.com/document/product/1003/50853

    One More Thing

    立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 ? serverless/start


    起源地下载网 » 国内首款 Serverless MySQL 数据库重磅发布!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元