雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
要點
将一個長url生成一個短連結是很常見的需求,本文嘗試通過serverless的方式來提供這個功能,主要有兩部分内容:
1.一個簡單的短連結生成方案
2.scf函數如何使用第三方依賴庫
如何生成短連結
這裡使用了一個很簡單的方案,送出url時,先通過mysql的自增id擷取一個整數,表結構大緻如下:

這樣insert資料的時候,id會自增,擷取到這個自增的整數值,然後使用hashids這個庫将這個id轉換為一個短字元串:
hashids.org/python/
将這個短字元串作為短網址域名的路徑就可以使用了。
scf如何使用第三方庫
由于使用到了hashids這個第三方庫,就需要将這個庫也打包一起上傳,這裡需要注意的要點就是安裝hashids庫的指令:
注意後面的 -t 參數,将依賴庫安裝在雲函數的代碼所在的目錄,這樣在使用scf指令打包上傳時,依賴庫也會被一起上傳
直接貼代碼
測試
在本地建立一個測試資料檔案,event.json:
本地測試驗證:
将傳回的短字元串拼接到你想使用的域名後面,就可以獲得一個自己的短網址生成器了:
需要注意的問題
經嘗試,這個sdk裡面擷取到的cousor對象無法擷取lastrowid,也就是取不到每次插入記錄後的自增id,是以這裡自行使用pymysql來操作資料庫,是以務必記得在最後要手動關閉連結。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/live立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-05-10
本文作者:thor_lee
本文來自:“
掘金,了解相關資訊可以關注“掘金”