如何在雲託管中操作雲開發資料庫?
作為新一代雲原生應用引擎(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 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程中繁瑣的伺服器搭建及運維,開發者可以專注於業務邏輯的實現,開發門檻更低,效率更高。