您好,登錄后才能下訂單哦!
本篇內容主要講解“Serverless MySQL數據庫怎么部署”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Serverless MySQL數據庫怎么部署”吧!
TDSQL-C Serverless(MySQL 數據庫),具備完全自動化的擴容能力,能夠隨著用戶業務的請求數的增加和減少,智能化“膨脹”和“縮小”,實現資源的自動“吞吐”。從此以后,開發者可以真正的完成 Serverless 應用的開發,專注于業務本身,免除運維,按需付費,享受 Serverless 架構帶來的眾多優勢。
另外,TDSQL-C Serverless 數據庫在試用期間完全免費。
自動駕駛(Autopilot):
數據庫根據業務負載自動啟動停止,無感擴縮容,擴縮容過程不會斷開連接。
按使用計費(Utility Pricing):
按實際使用的計算和存儲量計費,不用不付費,按秒計量,按小時結算。
開發、測試環境等低頻數據庫使用場景。
物聯網(IoT)、邊緣計算等不確定負載場景。
中小企業建站等 SaaS 應用場景。
下面的教程將以 Node.js 開發語言的函數,指導您如何快速創建 TDSQL-C Serverless MySQL 實例,并在云函數中進行調用:
配置環境變量
配置私有網絡: 通過 Serverless Framework VPC 組件 創建 VPC 和 子網,支持云函數和數據庫的網絡打通和使用。
配置 Serverless DB: 通過 Serverless Framework Cynosdb 組件 創建 MySQL 實例,為云函數項目提供數據庫服務。
編寫業務代碼: 通過 Serverless DB SDK 調用數據庫,云函數支持直接調用 Serverless DB SDK,連接 PostgreSQL 數據庫進行管理操作。
部署應用: 通過 Serverless Framework 部署項目至云端,并通過云函數控制臺進行測試。
移除項目: 可通過 Serverless Framework 移除項目。
在本地建立目錄,用于存放代碼及依賴模塊。本文以 test-MySQL
文件夾為例。
mkdir test-MySQL && cd test-MySQL
由于目前 TDSQL-C Serverless 只支持 ap-beijing-3
,ap-guangzhou-4
,ap-shanghai-2
和 ap-nanjing-1
四個區域,所以這里還需要配置下,只需要在項目根目錄下創建 .env
文件,然后配置 REGION
和 ZONE
兩個環境變量:
# .env REGION=xxx ZONE=xxx
在 test-MySQL
目錄下創建文件夾 VPC
。
mkdir VPC && cd VPC
同時在 VPC
中新建 serverless.yml 文件,使用 VPC 組件完成私有網絡和子網的創建。
serverless.yml
示例內容如下,全量配置參考產品文檔
#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
下創建文件夾 DB
,并在 DB
文件夾下新建 serverless.yml
文件,并輸入以下內容,通過 Serverless Framework 組件完成云開發環境配置。
serverless.yml
示例內容如下,全量配置參考產品文檔
# 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
下創建文件夾 src
,用于存放業務邏輯代碼和相關依賴項。并在 src
文件夾下創建文件 index.js
,輸入如下示例代碼。在函數中通過 SDK 連接數據庫,并在其中完成 MySQL 數據庫的調用。
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
完成業務代碼編寫和依賴安裝后,創建 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}
完成創建后,項目目錄結構如下:
./test-MySQL ├── vpc │ └── serverless.yml # vpc 配置文件 ├── db │ └── serverless.yml # db 配置文件 ├── src │ ├── serverless.yml # scf 組件配置文件 │ ├── node_modules # 項目依賴文件 │ └── index.js # 入口函數 └── .env # 環境變量文件
使用命令行在 test-MySQL
下,執行以下命令進行部署。
sls deploy
部署時需要掃碼授權,如果沒有騰訊云賬號,請 注冊新賬號。
如果是子賬號,請參考子賬號權限配置完成授權
返回結果如下所示,即為部署成功。
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.
部署成功后,您可通過 云函數控制臺,查看并進行函數調試,測試成功如下圖所示:
在 test-MySQL
目錄下,執行以下命令可移除項目。
sls remove
返回如下結果,即為成功移除。
serverless ? framework 4s ? test-MySQL ? Success
除了通過組件一鍵創建所有資源外,您也可以通過控制臺完成 Serverless 版本 MySQL 數據庫的創建,并在云函數中正常使用 SDK 的方式完成調用。
到此,相信大家對“Serverless MySQL數據庫怎么部署”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。