Skip to content

navicat sqlite http tunnel for serverless navicat的sqlite的http通道适配serverless

License

Notifications You must be signed in to change notification settings

imbyc/navicat-sqlite-tunnel-for-serverless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Navicat SQLite Http Tunnel For Serverless

navicat SQLite Http通道适配Serverless

目前适配了腾讯云的Serverless,可以用navicate管理挂载到云函数中的SQLite数据库

背景

可以在云函数中挂载文件系统CFS当做数据盘用,像SQLite这种无依赖的数据库就很适合用在其中,做一个小型的数据库就很美滋滋,但无法使用Navicat这种数据库管理工具去连接管理,所幸的是Navicat里面提供了http通道,但是在serverless是没法使用的。

适配思路

项目根目录下ntunnel_sqlite.php为navicat自带的http通道文件,基于这个文件修改让其可以在serverless环境下运行

部署

手动部署

1.新建一个函数

选择环境Php7.2,空白函数

创建一个云函数,注意和你的文件系统CFS要在一个区,比如广州,将项目src目录下的文件复制到

修改执行方法为tunnel.main_handler

往下拉有一个高级设置,展开:

超时时间设置为900秒,防止在使用导出一类sql语句时超时

启用权限配置并选择SCF_QcsRole

勾选私有网络(启用文件系统必须勾选私有网络),公有网络用不上,可以取消掉

选择私有网络的交换机(选择不对文件系统对应ID找不到)

如果没有文件系统可以点击新建文件系统去创建

注意这个地方:云函数想要读取文件系统的数据是需要权限的,可以参考官方文档去操作,一定要授权,不然没有权限

本地目录和远程目录不用改,默认为/mnt/,在云函数中读取的时候比如/mnt/a.txt实际找的就是文件系统的/a.txt文件

返回到文件编辑区,系统默认创建一个index.php,将其删除

创建两个文件tunnel.phptest.html,将项目src目录下对应文件内容复制粘贴进去

点击完成进行保存

2.创建API网关触发器

触发管理-创建触发器,选择API网关触发器,取一个名字,选择新建API服务,勾选启用集成响应,提交

创建成功后可以看到一个访问路径,点击可以看到一个测试页面,但此时还没有完全配置好

访问地址复制下来,到Navicat里面连接时需要用到

测试页面

点击API服务名后面的链接跳转到API网关设置页面,可以看到系统创建好的API路径,点击编辑

参数配置-新增参数配置,参数位置全部为Body,类型全部为string,没有默认值,都是非必填

参数名 参数位置 类型 备注
actn Body string 动作
dbfile Body string 数据库文件
encodeBase64 Body string 是否base64编码
q Body string 查询语句
version Body string 版本

下一步,后端超时可以改为1800秒,防止超时,再下一步就不用设置了,点击完成,选择前往发布服务

一定要发布,不然修改是不生效的

调转到页面点击右上角发布

发布环境选择发布,备注随便填写,提交

自动部署

使用 Serverless Framework CLI 进行部署

1.安装nodejs,推荐版本12.16

2.配置权限

3.克隆本仓库

4.手动创建好文件系统CFS

5.修改.env.example.env并修改其中的配置

6.在项目目录下使用serverless deploy部署,API网关都会自动配置好

测试

打开Navicat,新建连接,打开HTTP选项卡,勾选使用HTTP通道,在API网关页面复制公网访问地址,粘贴进去,再切回到常规选项卡,取个名字,可以选择新建SQLite3,数据库文件填写/mnt/tunnel.db,点击确定,如果不报错就是可以连接的

About

navicat sqlite http tunnel for serverless navicat的sqlite的http通道适配serverless

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published