1. 程式人生 > 實用技巧 >如何在雲託管中操作雲開發資料庫?

如何在雲託管中操作雲開發資料庫?

作為新一代雲原生應用引擎(App Engine 2.0),雲託管擁有無痛遷移自動化彈性擴縮容免運維支援跨****平臺部署聯動雲開發能力等優勢,讓開發者可以不限語言框架,低成本遷移上雲開發,有效提升開發效率。

那麼,能否在雲託管中操作雲開發的基礎能力雲資料庫呢?

當然可以!下方是部署教程:

準備工作

  • 開通 CloudBase 雲開發環境
  • 注意:包年包月環境無法開通雲託管

第 1 步: 開通

登入 雲開發 CloudBase 控制檯,選擇一個環境,進入雲託管管理頁面,單擊「立即開通」。

第 2 步: 配置雲託管

所在地域

雲託管當前已**開放上海和廣州地域 **,更多地域將陸續開放。

雲託管網路

網路設定包括 私有網路 VPC 和 子網。 以環境為維度,雲託管中建立的所有服務,都將部署在這同一個 VPC 之中,且成功開通雲託管後不支援更換網路設定。

網路設定分為如下兩種模式:

系統預設配置

雲託管將為您自動新建一個 VPC 和子網,並將其繫結您當前的雲開發環境。

後續您在當前環境下的雲託管中建立的所有服務,都將被部署到這個 VPC 和子網中。

此過程無需您手動進行任何設定。 後續您可以在 私有網路控制檯 中檢視並管理這個由雲託管自動建立的 VPC 及子網,也可以將更多雲資源(例如雲伺服器,雲資料庫等)部署在這個 VPC 之內,以便這些雲資源進行互動。

自定義配置

如果您之前已經建立過私有網路 VPC 和子網,並在其中已經部署有其他雲資源(例如雲伺服器、雲資料庫等),且需要您的雲託管應用與這些已存在的雲資源進行互動,則您可以選擇「自定義配置」,選擇具體的 VPC 和子網。

開通成功

單擊「提交」,狀態變為開通中 ,請等待數秒 。

開通成功後,您將自動跳轉到雲託管的服務列表頁面。

至此您已經成功開通後 **雲託管 **服務,您可以單擊「新建服務」開始部署。

新建服務

單擊「新建服務」,填寫服務名稱、備註資訊(選填)後,單擊「提交」。

搭建node環境

本文中使用 koa<span> </span>來進行搭建,使用以下依賴。

koa

koa-router

koa-body

koa-onerror

初始化專案

mkdir datamanage && cd datamanage

touch index.js && npm init

我們會獲得一個如下結構目錄

const Koa = require('koa')
const Router = require('koa-router')
const koaBody = require('koa-body')
const app = new Koa
const router = new Router()
const onerror = require('koa-onerror')


app.use(koaBody({
    multipart: true
}))


router.get('/', async (ctx) => {
    ctx.body = {
        msg: 'Hello, Welcome to CloudBase!'
    }
})


app.on('error', (err, ctx) => {
    console.error('server error', err, ctx)
});


app.use(router.routes());
app.use(router.allowedMethods());

const port = process.env.PORT || 80;

app.listen(port, () => {
    console.log('Hello world listening on port', port);
});

在根目錄中建立名為 Dockerfile<span> </span> 的檔案:

#拉取node映象
FROM node:12-slim

# 指定落地路徑
WORKDIR /usr/src/app


#拷貝依賴記錄檔案
COPY package*.json ./

#使用npm install 安裝相關依賴
RUN npm install --only=production

#將程式碼複製到容器
COPY . ./

#啟動命令
CMD [ "npm", "start" ]

打包檔案

打包檔案路徑需要與 DockerFile 檔案配置中一致。

部署至雲託管

進入服務後,單擊「新建版本」,可選擇多種上傳方式本文中使用 原生代碼上傳方式<span> </span>,按照圖中步驟依次操作後,單擊「開始部署」(部署時間跟DockerFile檔案中的複雜程度有關)。

等待部署完成後,單擊上方「服務配置」,單擊「路徑」,修改為 /

開啟公網訪問之後我們的應用就可以線上進行訪問了

通過 postman<span> </span>進行訪問

第 3 步: 連線雲開發資料庫

使用騰訊雲提供的 @cloudbase/node-sdk 來進行連線

@cloudbase/node-sdk

完善下之前的程式碼

const Koa = require('koa')
const Router = require('koa-router')
const koaBody = require('koa-body')
const app = new Koa
const router = new Router()
const cloudbase = require("@cloudbase/node-sdk");
const onerror = require('koa-onerror')
const cloud = cloudbase.init({
    env: 'xxxx' //請輸入您自己的envid登入 [雲開發 CloudBase 控制檯](https://console.cloud.tencent.com/tcb)進行獲取
});

const db = cloud.database();

app.use(koaBody({
    multipart: true
}))

// error handler
onerror(app)

router.get('/', async (ctx) => {
    ctx.body = {
        msg: 'Hello, Welcome to CloudBase!'
    }
})

router.post('/add', async (ctx) => {

    let {
        user,
        password
    } = ctx.request.body

    let {
        id,
        code,
        message
    } = await db.collection('test').add({
        user,
        password
    })
    if (code) {
        ctx.status = 400
        ctx.body = {
            code: 0,
            msg: message
        }
    }

    ctx.body = {
        code: 1,
        msg: '新增成功',
        id
    }
})

app.on('error', (err, ctx) => {
    console.error('server error', err, ctx)
});

app.use(router.routes())
app.use(router.allowedMethods())

const port = process.env.PORT || 80;

app.listen(port, () => {
    console.log('Hello world listening on port', port);
});

需要先上傳版本

通過 postman<span> </span>向雲開發資料庫寫入一條記錄

記錄已經成功寫入(CloudBase 服務端 SDK 已經與雲託管進行整合,無需手工填入金鑰即可使用)

搞定~現在可以直接通過雲託管操作雲開發資料庫,更多內容可前往Node.js SDK API 進行檢視。

總結

以上就是使用雲託管連線雲開發資料庫攻略,整個部署過程簡單快捷,快來一起試一試吧!

產品介紹

雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平臺,為開發者提供高可用、自動彈性擴縮的後端雲服務,包含計算、儲存、託管等serverless化能力,可用於雲端一體化開發多種端應用(小程式,公眾號,Web 應用,Flutter 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程中繁瑣的伺服器搭建及運維,開發者可以專注於業務邏輯的實現,開發門檻更低,效率更高。