Serverless-实现一个短网址服务

云栖号资讯:【点击查看更多行业资讯
在这里您能够找到不一样行业的第一手的上云资讯,还在等什么,快来!
python


要点mysql

将一个长url生成一个短连接是很常见的需求,本文尝试经过serverless的方式来提供这个功能,主要有两部份内容:sql

1.一个简单的短连接生成方案数据库

2.scf函数如何使用第三方依赖库json

如何生成短连接less

这里使用了一个很简单的方案,提交url时,先经过mysql的自增id获取一个整数,表结构大体以下:函数

1

这样insert数据的时候,id会自增,获取到这个自增的整数值,而后使用hashids这个库将这个id转换为一个短字符串:post

hashids.org/python/测试

将这个短字符串做为短网址域名的路径就可使用了。url

scf如何使用第三方库

因为使用到了hashids这个第三方库,就须要将这个库也打包一块儿上传,这里须要注意的要点就是安装hashids库的命令:

2

注意后面的 -t 参数,将依赖库安装在云函数的代码所在的目录,这样在使用scf命令打包上传时,依赖库也会被一块儿上传

直接贴代码

3

4

5

测试

在本地建立一个测试数据文件,event.json:

7

本地测试验证:

6

8

将返回的短字符串拼接到你想使用的域名后面,就能够得到一个本身的短网址生成器了:

9

须要注意的问题

经尝试,这个sdk里面获取到的cousor对象没法获取lastrowid,也就是取不到每次插入记录后的自增id,因此这里自行使用pymysql来操做数据库,因此务必记得在最后要手动关闭连接。

【云栖号在线课堂】天天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

当即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-10
本文做者:thor_lee
本文来自:“掘金,了解相关信息能够关注“掘金”

相关文章
相关标签/搜索