如何在雲託管中操做雲開發數據庫?

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

那麼,可否在雲託管中操做雲開發的基礎能力雲數據庫呢?數據庫

固然能夠!下方是部署教程:npm

準備工做

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

第 1 步: 開通

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

第 2 步: 配置雲託管

所在地域

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

雲託管網絡

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

網絡設置分爲以下兩種模式:服務器

系統默認配置

雲託管將爲您自動新建一個 VPC 和子網,並將其綁定您當前的雲開發環境。網絡

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

此過程無需您手動進行任何設置。 後續您能夠在 私有網絡控制檯 中查看並管理這個由雲託管自動建立的 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 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程當中繁瑣的服務器搭建及運維,開發者能夠專一於業務邏輯的實現,開發門檻更低,效率更高。

相關文章
相關標籤/搜索