如何使用Serverless Framework 部署個(gè)人博客到云平臺(tái),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
思明網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
Serverless Framework
COS(對(duì)象存儲(chǔ))
API 網(wǎng)關(guān)
DNSPod 域名注冊(cè)、域名備案、域名解析
SSL 證書(shū)
cdn(內(nèi)容分發(fā)網(wǎng)絡(luò))
2021/01/21 在 DNSPod(2011 年被騰訊收購(gòu))購(gòu)買(mǎi)了域名 serverlesslife.cn 并進(jìn)行了實(shí)名認(rèn)證。
購(gòu)買(mǎi)域名后,在中國(guó)大陸,要使用域名提供服務(wù),還需要進(jìn)行域名備案。
2021/1/31 在「騰訊云網(wǎng)站備案」小程序上提交了備案申請(qǐng);
經(jīng)過(guò)了兩輪審核(騰訊云審核+管局審核)后,在 8 天后的 2021/02/07 審核通過(guò)。
Serverless Framework 是 serverless.com 推出的一個(gè)流行的 Serverless 框架,它可以將 Serverless 函數(shù)/應(yīng)用部署到不同的云廠商的 Serverless 平臺(tái)。在國(guó)內(nèi)騰訊云與 serverless.com 達(dá)成戰(zhàn)略合作,對(duì)它進(jìn)行了很多定制,做了很多組件,使得很容易將 Serverless 函數(shù)/應(yīng)用部署到騰訊云。
要搭建個(gè)人獨(dú)立博客,有很多開(kāi)源的建站工具可以用,比如:WordPress、Hexo、Jekyll、Hugo 等等,不勝枚舉。
因?yàn)橹坝眠^(guò) Hugo,并且比較喜歡它,這里使用了 Hugo 來(lái)搭建個(gè)人博客。
Hugo 是由一個(gè) Go 語(yǔ)言實(shí)現(xiàn)的靜態(tài)網(wǎng)站生成器。簡(jiǎn)單、易用、高效、易擴(kuò)展、快速部署。
Hugo 易擴(kuò)展指的是它有豐富的主題可以選擇,這是筆者喜歡它的原因之一,每個(gè)人都可以選擇自己喜歡的主題。
在 Hugo 站點(diǎn)初始化后,在眾多主題中選擇了主題: LoveIt(多么好聽(tīng)的名字呀?。?。
主題也有很多參數(shù),可以根據(jù)自己的需求按需配置。
基本框架搭建完成后,如果要編寫(xiě)博文,只需要添加 Markdown 文件和相關(guān)靜態(tài)資源文件。
Hugo 支持本地實(shí)時(shí)預(yù)覽,可以一邊寫(xiě) markdown 文件,一邊就能通過(guò)瀏覽器實(shí)時(shí)查看效果。
當(dāng)然部署到生產(chǎn)服務(wù)器,需要進(jìn)行編譯,編譯成站點(diǎn)的任務(wù)只要一條 hugo 命令就能完成。
站點(diǎn)源碼托管在 GitHub 上: https://github.com/serverlesslife-cn/serverlesslife
同時(shí)使用 GitHub Actions 將代碼同步到了 Gitee: https://gitee.com/serverlesslife/serverlesslife
在站點(diǎn)編譯后,使用 Serverless Framework CLI 便可將它部署到騰訊云。
Serverless Framework CLI 需要一個(gè)配置文件 serverless.yml,此時(shí)配置文件內(nèi)容如下:
component: website # (必填) 引用 component 的名稱(chēng),當(dāng)前用到的是 tencent-website 組件 name: serverlesslife-2021 # (必填) 該 website 組件創(chuàng)建的實(shí)例名稱(chēng) app: serverlesslife-2021 # (可選) 該 website 應(yīng)用名稱(chēng) stage: prod # (可選) 用于區(qū)分環(huán)境信息,默認(rèn)值是 dev inputs: src: src: ./public index: index.html region: ap-guangzhou bucketName: serverlesslife-2021 protocol: https
其中 public 目錄是 hugo 編譯之后站點(diǎn)文件所在目錄。
使用 serverless deploy 命令進(jìn)行部署操作,如果沒(méi)有在本地的 .env 配置 secretid 和 secretkey,需要使用微信進(jìn)行掃描登錄。
部署過(guò)程中,會(huì)在 COS 創(chuàng)建一個(gè) bucket 并將 public 目錄下的文件上傳到這個(gè) bucket 中,然后會(huì)生成一個(gè)騰訊云四級(jí)域名的訪問(wèn)地址。其中該 bucket 前綴是 serverlesslife-2021,工具會(huì)自動(dòng)加上騰訊云賬號(hào)的 APPID 作為后綴。
Serverless Framework 控制臺(tái)下,會(huì)有一個(gè)應(yīng)用名稱(chēng)為 serverlesslife-2021 的應(yīng)用,這個(gè)應(yīng)用會(huì)有一個(gè)騰訊云四級(jí)域名的訪問(wèn)地址,如下所示:
在 COS 對(duì)象存儲(chǔ)的存儲(chǔ)桶列表頁(yè),可以看到有一個(gè)名稱(chēng)為 serverlesslife-2021-1259061164 的 bucket,如下所示:
配置「自定義域名 + SSL 證書(shū) + 自動(dòng)刷新 CDN」還需要在 serverless.yml 中增加一些配置信息,整個(gè) serverless.yml 文件如下:
component: website # (必填) 引用 component 的名稱(chēng),當(dāng)前用到的是 tencent-website 組件 name: serverlesslife-2021 # (必填) 該 website 組件創(chuàng)建的實(shí)例名稱(chēng) app: serverlesslife-2021 # (可選) 該 website 應(yīng)用名稱(chēng) stage: prod # (可選) 用于區(qū)分環(huán)境信息,默認(rèn)值是 dev inputs: src: src: ./public index: index.html region: ap-guangzhou bucketName: serverlesslife-2021 protocol: https hosts: - host: serverlesslife.cn autoRefresh: true #開(kāi)啟自動(dòng) CDN 刷新,用于快速更新和同步加速域名中展示的站點(diǎn)內(nèi)容 onlyRefresh: false #建議首次部署后,將此參數(shù)配置為 true,即忽略其他 CDN 配置,只進(jìn)行刷新操作 https: switch: on http2: on certInfo: certId: 'kBM9GLPt'
上面的配置文件支持配置多個(gè)域名,每個(gè)域名下面還可以配置其他信息,如 SSL 證書(shū) ID、自動(dòng)刷新 CDN 等。
使用自定義域名時(shí),如果需要配置 SSL 證書(shū),那么就必須使用 CDN,因?yàn)樵?CDN 下可以配置證書(shū)。
SSL 證書(shū)需要事先在 SSL 證書(shū)控制臺(tái)申請(qǐng),這里申請(qǐng)了一個(gè)免費(fèi)證書(shū),證書(shū)有效期一年,申請(qǐng)成功后會(huì)有一個(gè) ID:kBM9GLPt,如下所示:
在配置好域名相關(guān)信息后,Serverless Framework 在部署后做了大量的事情,大大簡(jiǎn)化了配置成本。
如果不用 Serverless Framework 的話,那么就需要在不用云服務(wù)的控制臺(tái)多個(gè)地方來(lái)回進(jìn)行配置。
下面看下在配置「自定義域名 + SSL 證書(shū) 」背后,Serverless Framework 都做了哪些事情:
1、CDN 控制臺(tái)下,證書(shū)管理—>配置證書(shū),將域名和證書(shū)關(guān)聯(lián)到了一起,如下所示:
2、CDN 控制臺(tái)下,域名管理—>添加域名,新增了一條記錄,為 serverlesslife.cn 開(kāi)啟了靜態(tài)加速,將 COS 靜態(tài)網(wǎng)站作為源站點(diǎn),并會(huì)生成 CNAME:
3、COS 控制臺(tái)下,點(diǎn)進(jìn) serverlesslife-2021-1259061164 存儲(chǔ)桶,在域名傳輸與管理—>自定義 CDN 加速域名處,也會(huì)看到有一條記錄:
此時(shí),要正常訪問(wèn)域名,還需要手動(dòng)配置下域名解析:打開(kāi) DNSPod 控制臺(tái),為 serverlesslife.cn 添加一條 CNAME 記錄,記錄值為 CDN 生成的 CNAME:serverlesslife.cn.cdn.dnsv1.com。
注意:在首次部署后,將 onlyRefresh 參數(shù)配置為 true,即忽略其他 CDN 配置,只進(jìn)行刷新操作,否則部署時(shí)間會(huì)相對(duì)比較長(zhǎng)。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。