天天看点

Serverless-实现一个短网址服务

云栖号资讯:【 点击查看更多行业资讯

在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

要点

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

1.一个简单的短链接生成方案

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

如何生成短链接

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

Serverless-实现一个短网址服务

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

hashids.org/python/

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

scf如何使用第三方库

由于使用到了hashids这个第三方库,就需要将这个库也打包一起上传,这里需要注意的要点就是安装hashids库的命令:

Serverless-实现一个短网址服务

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

直接贴代码

Serverless-实现一个短网址服务
Serverless-实现一个短网址服务
Serverless-实现一个短网址服务

测试

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

Serverless-实现一个短网址服务

本地测试验证:

Serverless-实现一个短网址服务
Serverless-实现一个短网址服务

将返回的短字符串拼接到你想使用的域名后面,就可以获得一个自己的短网址生成器了:

Serverless-实现一个短网址服务

需要注意的问题

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

【云栖号在线课堂】每天都有产品技术专家分享!

课程地址:

https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!

【云栖号在线课堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-10

本文作者:thor_lee

本文来自:“

掘金

,了解相关信息可以关注“掘金”