您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Serverless MySQL數(shù)據(jù)庫怎么部署”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Serverless MySQL數(shù)據(jù)庫怎么部署”吧!
TDSQL-C Serverless(MySQL 數(shù)據(jù)庫),具備完全自動(dòng)化的擴(kuò)容能力,能夠隨著用戶業(yè)務(wù)的請(qǐng)求數(shù)的增加和減少,智能化“膨脹”和“縮小”,實(shí)現(xiàn)資源的自動(dòng)“吞吐”。從此以后,開發(fā)者可以真正的完成 Serverless 應(yīng)用的開發(fā),專注于業(yè)務(wù)本身,免除運(yùn)維,按需付費(fèi),享受 Serverless 架構(gòu)帶來的眾多優(yōu)勢。
另外,TDSQL-C Serverless 數(shù)據(jù)庫在試用期間完全免費(fèi)。
自動(dòng)駕駛(Autopilot):
數(shù)據(jù)庫根據(jù)業(yè)務(wù)負(fù)載自動(dòng)啟動(dòng)停止,無感擴(kuò)縮容,擴(kuò)縮容過程不會(huì)斷開連接。
按使用計(jì)費(fèi)(Utility Pricing):
按實(shí)際使用的計(jì)算和存儲(chǔ)量計(jì)費(fèi),不用不付費(fèi),按秒計(jì)量,按小時(shí)結(jié)算。
開發(fā)、測試環(huán)境等低頻數(shù)據(jù)庫使用場景。
物聯(lián)網(wǎng)(IoT)、邊緣計(jì)算等不確定負(fù)載場景。
中小企業(yè)建站等 SaaS 應(yīng)用場景。
下面的教程將以 Node.js 開發(fā)語言的函數(shù),指導(dǎo)您如何快速創(chuàng)建 TDSQL-C Serverless MySQL 實(shí)例,并在云函數(shù)中進(jìn)行調(diào)用:
配置環(huán)境變量
配置私有網(wǎng)絡(luò): 通過 Serverless Framework VPC 組件 創(chuàng)建 VPC 和 子網(wǎng),支持云函數(shù)和數(shù)據(jù)庫的網(wǎng)絡(luò)打通和使用。
配置 Serverless DB: 通過 Serverless Framework Cynosdb 組件 創(chuàng)建 MySQL 實(shí)例,為云函數(shù)項(xiàng)目提供數(shù)據(jù)庫服務(wù)。
編寫業(yè)務(wù)代碼: 通過 Serverless DB SDK 調(diào)用數(shù)據(jù)庫,云函數(shù)支持直接調(diào)用 Serverless DB SDK,連接 PostgreSQL 數(shù)據(jù)庫進(jìn)行管理操作。
部署應(yīng)用: 通過 Serverless Framework 部署項(xiàng)目至云端,并通過云函數(shù)控制臺(tái)進(jìn)行測試。
移除項(xiàng)目: 可通過 Serverless Framework 移除項(xiàng)目。
在本地建立目錄,用于存放代碼及依賴模塊。本文以 test-MySQL
文件夾為例。
mkdir test-MySQL && cd test-MySQL
由于目前 TDSQL-C Serverless 只支持 ap-beijing-3
,ap-guangzhou-4
,ap-shanghai-2
和 ap-nanjing-1
四個(gè)區(qū)域,所以這里還需要配置下,只需要在項(xiàng)目根目錄下創(chuàng)建 .env
文件,然后配置 REGION
和 ZONE
兩個(gè)環(huán)境變量:
# .env REGION=xxx ZONE=xxx
在 test-MySQL
目錄下創(chuàng)建文件夾 VPC
。
mkdir VPC && cd VPC
同時(shí)在 VPC
中新建 serverless.yml 文件,使用 VPC 組件完成私有網(wǎng)絡(luò)和子網(wǎng)的創(chuàng)建。
serverless.yml
示例內(nèi)容如下,全量配置參考產(chǎn)品文檔
#serverless.yml org: mysql-app app: mysql-app stage: dev component: vpc # (required) name of the component. In that case, it's vpc. name: mysql-app-vpc # (required) name of your vpc component instance. inputs: region: ${env:REGION} zone: ${env:ZONE} vpcName: serverless-mysql subnetName: serverless-mysql
在 test-MySQL
下創(chuàng)建文件夾 DB
,并在 DB
文件夾下新建 serverless.yml
文件,并輸入以下內(nèi)容,通過 Serverless Framework 組件完成云開發(fā)環(huán)境配置。
serverless.yml
示例內(nèi)容如下,全量配置參考產(chǎn)品文檔
# serverless.yml org: mysql-app app: mysql-app stage: dev component: cynosdb name: mysql-app-db inputs: region: ${env:REGION} zone: ${env:ZONE} vpcConfig: vpcId: ${output:${stage}:${app}:mysql-app-vpc.vpcId} subnetId: ${output:${stage}:${app}:mysql-app-vpc.subnetId}
在 test-MySQL
下創(chuàng)建文件夾 src
,用于存放業(yè)務(wù)邏輯代碼和相關(guān)依賴項(xiàng)。并在 src
文件夾下創(chuàng)建文件 index.js
,輸入如下示例代碼。在函數(shù)中通過 SDK 連接數(shù)據(jù)庫,并在其中完成 MySQL 數(shù)據(jù)庫的調(diào)用。
exports.main_handler = async (event, context, callback) => { var mysql = require('mysql2'); var connection = mysql.createConnection({ host : process.env.HOST, user : 'root', password : process.env.PASSWORD }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.end(); }
安裝所需依賴模塊:
npm install mysql2
完成業(yè)務(wù)代碼編寫和依賴安裝后,創(chuàng)建 serverless.yml
文件,示例文件如下:
org: mysql-app app: mysql-app stage: dev component: scf name: mysql-app-scf inputs: src: ./ functionName: ${name} region: ${env:REGION} runtime: Nodejs10.15 timeout: 30 vpcConfig: vpcId: ${output:${stage}:${app}:mysql-app-vpc.vpcId} subnetId: ${output:${stage}:${app}:mysql-app-vpc.subnetId} environment: variables: HOST: ${output:${stage}:${app}:mysql-app-db.connection.ip} PASSWORD: ${output:${stage}:${app}:mysql-app-db.adminPassword}
完成創(chuàng)建后,項(xiàng)目目錄結(jié)構(gòu)如下:
./test-MySQL ├── vpc │ └── serverless.yml # vpc 配置文件 ├── db │ └── serverless.yml # db 配置文件 ├── src │ ├── serverless.yml # scf 組件配置文件 │ ├── node_modules # 項(xiàng)目依賴文件 │ └── index.js # 入口函數(shù) └── .env # 環(huán)境變量文件
使用命令行在 test-MySQL
下,執(zhí)行以下命令進(jìn)行部署。
sls deploy
部署時(shí)需要掃碼授權(quán),如果沒有騰訊云賬號(hào),請(qǐng) 注冊(cè)新賬號(hào)。
如果是子賬號(hào),請(qǐng)參考子賬號(hào)權(quán)限配置完成授權(quán)
返回結(jié)果如下所示,即為部署成功。
mysql-app-vpc: region: xxx zone: xxx vpcId: xxxx-xxx ... mysql-app-db: dbMode: xxxx region: xxxx zone: xxxx ... mysql-app-scf: functionName: xxxx description: xxx ... 59s ? test-MySQL ? "deploy" ran for 3 apps successfully.
部署成功后,您可通過 云函數(shù)控制臺(tái),查看并進(jìn)行函數(shù)調(diào)試,測試成功如下圖所示:
在 test-MySQL
目錄下,執(zhí)行以下命令可移除項(xiàng)目。
sls remove
返回如下結(jié)果,即為成功移除。
serverless ? framework 4s ? test-MySQL ? Success
除了通過組件一鍵創(chuàng)建所有資源外,您也可以通過控制臺(tái)完成 Serverless 版本 MySQL 數(shù)據(jù)庫的創(chuàng)建,并在云函數(shù)中正常使用 SDK 的方式完成調(diào)用。
到此,相信大家對(duì)“Serverless MySQL數(shù)據(jù)庫怎么部署”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。