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
本文來自:「掘金,瞭解相關信息能夠關注「掘金」

相關文章
相關標籤/搜索