溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Serverless MySQL數(shù)據(jù)庫怎么部署

發(fā)布時(shí)間:2021-12-04 11:36:54 來源:億速云 閱讀:321 作者:iii 欄目:云計(jì)算

本篇內(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)。

服務(wù)特性

  • 自動(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)用:

操作步驟

  1. 配置環(huán)境變量

  2. 配置私有網(wǎng)絡(luò): 通過 Serverless Framework VPC 組件 創(chuàng)建 VPC 和 子網(wǎng),支持云函數(shù)和數(shù)據(jù)庫的網(wǎng)絡(luò)打通和使用。

  3. 配置 Serverless DB: 通過 Serverless Framework Cynosdb 組件 創(chuàng)建 MySQL 實(shí)例,為云函數(shù)項(xiàng)目提供數(shù)據(jù)庫服務(wù)。

  4. 編寫業(yè)務(wù)代碼: 通過 Serverless DB SDK 調(diào)用數(shù)據(jù)庫,云函數(shù)支持直接調(diào)用 Serverless DB SDK,連接 PostgreSQL 數(shù)據(jù)庫進(jìn)行管理操作。

  5. 部署應(yīng)用: 通過 Serverless Framework 部署項(xiàng)目至云端,并通過云函數(shù)控制臺(tái)進(jìn)行測試。

  6. 移除項(xiàng)目: 可通過 Serverless Framework 移除項(xiàng)目。

1. 配置環(huán)境變量

在本地建立目錄,用于存放代碼及依賴模塊。本文以 test-MySQL 文件夾為例。

mkdir test-MySQL && cd test-MySQL

由于目前 TDSQL-C Serverless 只支持 ap-beijing-3,ap-guangzhou-4,ap-shanghai-2ap-nanjing-1 四個(gè)區(qū)域,所以這里還需要配置下,只需要在項(xiàng)目根目錄下創(chuàng)建 .env 文件,然后配置 REGIONZONE 兩個(gè)環(huán)境變量:

# .env
REGION=xxx  
ZONE=xxx

2. 配置私有網(wǎng)絡(luò)

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

3. 配置 Serverless DB

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}

4. 編寫業(yè)務(wù)代碼與配置文件

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}

5. 快速部署

完成創(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)試,測試成功如下圖所示:

Serverless MySQL數(shù)據(jù)庫怎么部署

移除項(xiàng)目

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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI