Rds基于mysql开发的_开发云数据库RDS MYSQL版讲解
前言 這篇文章適合所有的 C# 開發(fā)新手、老鳥以及想準(zhǔn)備學(xué)習(xí)開發(fā) C# 的程序猿。.NET Core是一個(gè)開源通用的開發(fā)框架,支持跨平臺(tái), 阿里云函數(shù)計(jì)算推出了 dotnetcore2.1 runtime, 使用 C# 編寫 serverless 函數(shù), 詳情見官方文檔:C# 函數(shù)入口. 在官方文檔描述中,我們獲知阿里云函數(shù)計(jì)算可以很好支持 asp.net core 的 Applicaiton:
ASP.NET Core Web API ASP.NET Core Web App ASP.NET Core Web App (Model-View-Controller) 在介紹 Serverless Web 開發(fā)新模式之前,我們先了解下將 C# WebApi/WebApp Serverless 化的好處:
無需采購和管理服務(wù)器等基礎(chǔ)設(shè)施 彈性伸縮,動(dòng)態(tài)擴(kuò)容 免運(yùn)維, 極大降低人力成本 按需付費(fèi),財(cái)務(wù)成本低 本文以部署一個(gè)完善的 asp.net core 工程 Blogifier 為例,在函數(shù)計(jì)算環(huán)境中為例,向您講解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建或移植基于 asp.net core 開發(fā)的 WebApi/WebApp ,通過本文,您將會(huì)了解以下內(nèi)容:
案例概覽 傳統(tǒng)服務(wù)器架構(gòu) VS Serverless架構(gòu) Serverless架構(gòu)詳解 函數(shù)計(jì)算運(yùn)行 Asp.net core App 原理 案例開發(fā)配置步驟
案例概覽 在本教程中,我們講解如何利用函數(shù)計(jì)算一步一步來構(gòu)建 Web 的 Server 端,該案例是把一個(gè) asp.net core 工程Blogifier 部署到函數(shù)計(jì)算,本文旨在展示函數(shù)計(jì)算做 Web Backend 能力,具體表現(xiàn)為以下幾點(diǎn):
完善的 ASP.NET Core Web 系統(tǒng)遷移到 FC 的成本不高 FC 打通了專有網(wǎng)絡(luò) VPC 功能,用戶的函數(shù)可以配置訪問專有網(wǎng)絡(luò)的云資源,比如本案例中 NAS 案例體驗(yàn)入口: http://dotnet.mofangdegisn.cn/
https://dotnet.mofangdegisn.cn/
傳統(tǒng)服務(wù)器架構(gòu) VS Serverless架構(gòu) 正常來說,用戶開發(fā) Server 端服務(wù),常常面臨開發(fā)效率,運(yùn)維成本高,機(jī)器資源彈性伸縮等痛點(diǎn),而使用 Serverless 架構(gòu)可以很好的解決上述問題。下面是傳統(tǒng)架構(gòu)和 Serverless 架構(gòu)的對(duì)比:
image
阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。通過函數(shù)計(jì)算,您無需管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳。函數(shù)計(jì)算會(huì)為您準(zhǔn)備好計(jì)算資源,以彈性、可靠的方式運(yùn)行您的代碼,并提供日志查詢,性能監(jiān)控,報(bào)警等功能。借助于函數(shù)計(jì)算,您可以快速構(gòu)建任何類型的應(yīng)用和服務(wù),無需管理和運(yùn)維。
Serverless 架構(gòu)詳解 image.png
從上面的示例圖中,整體架構(gòu)十分簡單明了, 用 FC 替代了 Web 服務(wù)器,但是換來的是免運(yùn)維,彈性擴(kuò)容,按需付費(fèi)等一系列優(yōu)點(diǎn)
函數(shù)計(jì)算運(yùn)行 Asp.net Core App 原理 Asp.net Core App 運(yùn)行在服務(wù)器上 image
A http request to your website will go through IIS/Nginx, then Kestrel, and finally will be passed on to ASP.NET Core
Asp.net Core App 運(yùn)行在函數(shù)計(jì)算上 image
請(qǐng)求通過函數(shù)(with http trigger), 最后到達(dá)ASP.NET Core
tips: 基于函數(shù)計(jì)算環(huán)境運(yùn)行新建 asp.net core app 可以參考dotnet runtime HTTP 觸發(fā)器的函數(shù)入口示例
在本文中,我們展示把一個(gè)現(xiàn)有的成熟的 asp.net core 工程低成本無縫遷移到函數(shù)計(jì)算環(huán)境。
案例開發(fā)配置步驟 準(zhǔn)備工作 1. 創(chuàng)建 NAS 掛接點(diǎn),配置 VPC , 具體參考函數(shù)計(jì)算nas使用示例 注:在本示例中使用 sqlite3 數(shù)據(jù)庫,這種文件類型的數(shù)據(jù)庫直接放置在 nas 即可,如果使用 mysql 等其他數(shù)據(jù)庫, 需要?jiǎng)?chuàng)建 RDS 數(shù)據(jù)庫, 配置 VPC , 具體參考通過 VPC 訪問 RDS 實(shí)例
可選操作,在準(zhǔn)備函數(shù)的 region 創(chuàng)建日志,用于函數(shù)的調(diào)試, 具體參考函數(shù)計(jì)算配置日志服務(wù) 創(chuàng)建函數(shù) 創(chuàng)建 Service (假設(shè)是 csharp-web), 配置準(zhǔn)備 vpc config , nas config 和日志服務(wù),比如案例體驗(yàn)的 Service 配置如下圖: image 下載 asp.net core 工程,Blogifier, 用 vs 打開, debug 本地可以正常運(yùn)行。 注:本地安裝 dotnetcore2.1 在工程中增加入口函數(shù),使得該工程可在函數(shù)計(jì)算執(zhí)行環(huán)境運(yùn)行,diff dotnet publish -c Release, 跳轉(zhuǎn)到publish目錄, 將相關(guān)的靜態(tài)資源/可寫/共享目錄移動(dòng)到上述配置的 NAS 的某個(gè)目錄(這里假設(shè)是 www目錄, 對(duì)應(yīng)步驟2中的diff)
dotnet publish -c Release
cp -r plugins/Common/bin/Release/netcoreapp2.1/publish/* src/App/bin/Release/netcoreapp2.1/publish/
src/App/bin/Release/netcoreapp2.1/publish/
mkdir lib
// 選擇函數(shù)計(jì)算執(zhí)行環(huán)境所需要的so, 其他的刪除即可
cp runtimes/linux-x64/native/libe_sqlite3.so ./lib
// 這里是傳送對(duì)應(yīng)的靜態(tài)文件和 app.db 到 nas 中, 詳情看下面的描述
rm -rf wwwroot app.db runtimes
zip -r code.zip *
// 最后使用這個(gè) code.zip 創(chuàng)建 handler 為 App::App.FcRemoteEntrypoint::HandleRequest 函數(shù) 將 publish 目錄下的 wwwroot 和 app.db 傳送到 nas 的 www 目錄, 可以使用 ecs 掛載 nas 傳輸過去, 也可以采用如下簡單函數(shù)傳輸過去
|-- index.py |-- www 注: www目錄下面有 wwwroot 和 app.db
index.py代碼:
-- coding: utf-8 --
import logging import os def handler(event, context): os.system("mkdir -p /mnt/share/www") os.system("cp -r /code/www/* /mnt/share/www/") os.system("chmod -R 777 /mnt/share/www") print( os.system("ls -ll /mnt/share/www") ) return 'ok' 基于上述代碼創(chuàng)一個(gè)函數(shù) move-res-nas , 執(zhí)行函數(shù),將相關(guān)靜態(tài)和共享資源移動(dòng)到 NAS 的/mnt/share/www/ 目錄。
注:最新版本的 Fun 工具已經(jīng)支持 NAS 相關(guān)操作, 有興趣的同學(xué)可以使用 Fun 完成 NAS, VPC 的自動(dòng)生成、配置以及網(wǎng)站工程文件上傳到 NAS
創(chuàng)建入口函數(shù) blog (使用上一步驟中的 code.zip ), 給函數(shù)設(shè)置 http trigger ,類型為 anonymous , 類型都選上。給函數(shù)入口配置自定義域名(操作過程請(qǐng)參考:綁定自定義域名示例), 具體配置假設(shè)如下: image
注意: 綁定自定義域名之后,不用使用控制臺(tái)來進(jìn)行調(diào)試,就只能使用瀏覽器來觸發(fā)函數(shù),日志服務(wù)來進(jìn)行調(diào)試。
總結(jié) 函數(shù)計(jì)算有如下優(yōu)勢:
無需采購和管理服務(wù)器等基礎(chǔ)設(shè)施 專注業(yè)務(wù)邏輯的開發(fā) 提供日志查詢、性能監(jiān)控、報(bào)警等功能快速排查故障 以事件驅(qū)動(dòng)的方式觸發(fā)應(yīng)用響應(yīng)用戶請(qǐng)求 毫秒級(jí)別彈性伸縮,快速實(shí)現(xiàn)底層擴(kuò)容以應(yīng)對(duì)峰值壓力 按需付費(fèi)。只需為實(shí)際使用的計(jì)算資源付費(fèi),適合有明顯波峰波谷的用戶訪問場景 除了上面所列的優(yōu)勢,FC 可以做為 Web Backend,只需要編寫一個(gè)函數(shù)實(shí)現(xiàn)傳統(tǒng) Web 服務(wù)器中的 conf 中的邏輯,就可以將一個(gè)完整的 Web 工程遷移到 FC ,從而從傳統(tǒng)的 Web 網(wǎng)站運(yùn)維,監(jiān)控等繁瑣的事務(wù)中解放出來。
總結(jié)
以上是生活随笔為你收集整理的Rds基于mysql开发的_开发云数据库RDS MYSQL版讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么播放视频_如何播放视频文件
- 下一篇: linux cmake编译源码,linu