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 实例,并在云函数中进行调用:

操作步骤

配置环境变量

配置私有网络: 通过 Serverless Framework VPC 组件 创建 VPC 和 子网,支持云函数和数据库的网络打通和使用。

配置 Serverless DB: 通过 Serverless Framework Cynosdb 组件 创建 MySQL 实例,为云函数项目提供数据库服务。

编写业务代码: 通过 Serverless DB SDK 调用数据库,云函数支持直接调用 Serverless DB SDK,连接 PostgreSQL 数据库进行管理操作。

部署应用: 通过 Serverless Framework 部署项目至云端,并通过云函数控制台进行测试。

移除项目: 可通过 Serverless Framework 移除项目。

1. 配置环境变量

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

mkdir test-MySQL && cd test-MySQL

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

# .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.

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

移除项目

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

sls remove

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

serverless ⚡ framework

4s › test-MySQL › Success

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

One More Thing

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

mysql创建工作经历表_国内首款 Serverless MySQL 数据库重磅发布!相关推荐

  1. cad模型轻量化_国内首款:新一代基于云架构的三维CAD产品CrownCAD正式公测!

    4月15号,华天软件控股子公司华云三维科技有限公司研发的国内首款.完全自主可控的新一代基于云架构的三维CAD产品CrownCAD正式上线公测. 公测地址:http://www.crowncad.com ...

  2. 物联网平台 源码_国内首个智慧交通物联网平台发布

    "智慧锥桶"工作示意图. 在近日召开的2020世界交通运输大会上,国内首个智慧交通物联网平台发布.该平台通过全系列物联网硬件设施,包括智慧锥桶.事故车盒.执法一体化快速封路器等和智 ...

  3. 比MySQL快6倍 深度解析国内首个云原生数据库POLARDB的“王者荣耀”

    随着移动互联网.电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战--为迎接"双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次 ...

  4. postgis数据库优化_国内首个 Serverless 数据库来了,技术架构全揭秘!

    头图 | CSDN 下载自东方 IC本文为企业投稿 省却成本,缩短产品上市时间,减少运维与开发团队之间的摩擦是 Serverless 最核心的所在,从 AWS 发布「Lambda」让「Serverle ...

  5. python aiompq集群_国内首款基于AIO(异步IO)支持集群的高性能开源WebSocket服务器 宝贝鱼 CshBBrain V4.0 发布...

    国内首款基于AIO的开源WebSocket服务器 宝贝鱼 (CshBBrainAIO)正式发布.基于AIO的开源WebSocket服务器 宝贝鱼 依然采用分层的体系结构,协议层和业务层 与 基于NIO ...

  6. mysql 创建表格time类型_记一次关于 Mysql 中 text 类型和索引问题引起的慢查询的定位及优化...

    最近有用户反馈产品有些页面加载比较慢,刚好我在学习 Mysql 相关知识,所以先从 Mysql 慢查询日志开始定位: step1:通过慢查询日志定位具体 SQL 首先通过 SHOW VARIABLES ...

  7. mysql 创建用户并授权_教你MySQL-8.0.x数据库授权

    Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码: [root@host]# mysqladmin -u root password "new_p ...

  8. 北斗通信运营商_国内首个“北斗+5G”应用方案发布 配套5G产品将于年底量产上市...

    北京合众思壮科技股份有限公司研发的各类北斗导航应用终端 郭超凯 摄 北京合众思壮科技股份有限公司研发的各类北斗导航应用终端 郭超凯 摄 中新网郑州9月10日电 (郭超凯)中国卫星导航与位置服务第八届年 ...

  9. mysql创建零件供应商表_● 建立一个供应商、零件数据库。其中“供应商”表 S(Sno,Sname,Zip,City)分别表示: 供应商代码、 供应 - 赏学吧...

    ● 建立一个供应商.零件数据库.其中"供应商"表 S(Sno,Sname,Zip,City)分别表示: 供应商代码. 供应商名. 供应商邮编. 供应商所在城市, 其函数依赖为: S ...

  10. 国内首款研发自动化产品PingCode Flow发布

    ​2019年11月,Workile跳出过去在泛协作领域的成绩积累,开辟研发产品线,致力于深度解决我国上千万产研从业者的工作痛点. 随后一年中,Agile.Testhub.Wiki.Plan纷纷问世,形 ...

最新文章

  1. 在jupyter notebook中同时安装python2和python3
  2. ie网络集合代理无法启动_网络故障诊断70例!经典老文了!
  3. Apache Tomcat Configuration Reference
  4. 软件质量的理解 摘录
  5. python 预测算法_Python 与金融数据使用机器学习算法预测交易策略
  6. dubbo官方文档_狂神说SpringBoot17:Dubbo和Zookeeper集成
  7. 【项目总结】达能益力--官网
  8. 华为Mate 50系列明年初发布:麒麟990/骁龙8 Gen1加持
  9. 记录一次nginx 配置https 强制http转发到https
  10. linux如何挂载windows下的共享文件
  11. 数据分析2 - 基础篇
  12. web漏洞扫描器原理_基于指纹识别的漏洞扫描设计
  13. TaggedInputSplit cannot be cast to org.apache.hadoop.mapreduce.lib.input.FileSplit
  14. 不那么完美的 RSS 订阅方案 — feedly + RSSHub Radar
  15. SAP中PR/PO创建技巧之缺省值个人设置
  16. 该内存不能为written或read的解决方案(比较全)
  17. ABIDE数据集预处理项目
  18. 每日随笔:笔记本WiFi突然连接不上重启才好的问题解决方式
  19. Ubuntu18.04使用校园网上网的问题(以锐捷客户端为例)
  20. 系统日志及数据库日志

热门文章

  1. 一文细数73个Vision transformer家族成员
  2. 视频+课件|基于多视图几何方式的三维重建
  3. 递归和循环两种方式求解连续数的相加
  4. [Swift]LeetCode609. 在系统中查找重复文件 | Find Duplicate File in System
  5. 属性变量,实例变量,全局变量
  6. 28.开始画面和异形窗口
  7. C# StringBuilder 和 String 的区别?(简单易懂不抽象)
  8. C#中实现拖拽功能,补全中
  9. 适合自己的才是最好的
  10. 在页面中直接设计TreeView的节点而不使用Web.Sitemap文件在运行时出错信息