天天看點

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

本文來自:“

掘金

,了解相關資訊可以關注“掘金”