華為雲函式中使用雲資料庫的JavaScript SDK基礎入門

華為開發者論壇發表於2021-12-13

背景介紹

使用雲資料庫Server端的SDK,此處我以華為提供的官方Demo為例,他們的Demo也已經開源放在了GitHub上,大家需要的可以自行下載。

https://github.com/AppGalleryConnect/agc-demos/tree/main/Server/agc-clouddb-demo-javascript

下載完Demo的專案程式碼後,還需要按照以下步驟操作:

前期在調研華為雲函式服務的時候,發現可以在雲函式中配置雲資料庫的觸發器,可以通過雲資料庫的插入刪除修改等事件,用來觸發雲函式中程式碼的執行。現在華為AGC的雲資料庫服務全網釋出了,並且還提供了Server端的JavaScript SDK,剛好可以執行在雲函式支援的Node.js環境中。話不多說,先來嘗試一下如何在雲函式中使用雲資料庫提供的JavaScript SDK,進行最簡單的資料的插入和查詢吧。

開通服務

這裡涉及開通兩個服務:

首先需要使用華為賬號登入AGC網站 ,按照以下步驟進行操作:

1.開通雲函式服務

在AGC內選擇 "我的專案"–>選擇對應的專案->"構建"->"雲函式",介面上點選 "立即開通" , 開通以後點選右側的建立函式即可。

2.開通雲資料庫服務

在AGC內選擇 "我的專案"–>選擇對應的專案->"構建"->"雲資料庫",介面上點選“立即開通”,開通以後,還需要建立對應的物件型別和儲存區。 此處對應型別和儲存區的建立,我都是按照資料庫文件中的使用入門來建立的。

包括建立一個 BookInfo 的物件型別, 還有一個QuickStartDemo 的儲存區。

雲資料庫JavaScript程式碼開發

使用雲資料庫Server端的SDK,此處我以華為提供的官方Demo為例,他們的Demo也已經開源放在了GitHub上,大家需要的可以自行下載。

https://github.com/AppGalleryConnect/agc-demos/tree/main/Server/agc-clouddb-demo-javascript

下載完Demo的專案程式碼後,還需要按照以下步驟操作:

1.匯出物件型別檔案

在雲資料庫的介面中,對已經建立的物件型別BookInfo,匯出成js的ServerSDK的格式,將其放到demo的model目錄下。

2.下載認證憑據。

AGC的介面中,選擇專案設定,在ServerSDK頁簽下,點選 “下載認證憑據” 進行下載,並且同樣放到demo的model目錄下。

3、修改credentialPath路徑。

由於我的認證憑據下載以後放在model目錄下,因此還需要同步修改程式碼中credentialPath路徑,在CloudDBZoneWrapper.js檔案中,修改初始化的程式碼,具體如下:

(注意對於雲函式環境,獲取路徑下的檔案,要使用_dirname方法)

let api_client_name = "agc-apiclient-testDB.json";

let path = require('path');

let api_client_path = path.join(__dirname,api_client_name);

agconnect.AGCClient.initialize(agconnect.CredentialParser.toCredential(api_client_path));

4.配置函式入口。

我這沒有使用示例程式碼中預設的Start.js的介面,而是自己建立了一個inde.js的檔案作為函式的入口,對應的程式碼如下

const CloudDBZoneWrapper = require("./model/CloudDBZoneWrapper.js");

let myHandler = async function(event, context, callback, logger) {

logger.info(JSON.stringify(event));

logger.info("event start");

const cloudDBZoneWrapper = new CloudDBZoneWrapper();

const bookInfo = cloudDBZoneWrapper.getSingleBook();

// upsert a list of books

await cloudDBZoneWrapper.upsertBookInfos(bookInfo);

let result = {"message":"Run Success"}

callback(result);

}

module.exports.myHandler = myHandler;


打包上傳與配置觸發器

1.如需將本地專案執行到雲函式中,需要將專案整體打包上傳,然後使用事件進行測試。注意函式入口需要在根目錄下

2、在AGC的雲函式介面,進行檔案的上傳,並且注意函式入口需要配置為index.myHandler。

3、配置對應的CloudDB觸發器,此時需要配置CLoudDB中,對應的儲存區和物件型別。

4、配置完成後,點選儲存

測試函式效果

1、在函式介面,選擇對應的測試頁籤。

2、根據雲函式的程式設計模型文件,配置相應的CloudDB觸發器觸發事件。

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudfunction-programmode-0000001058311525#section207831182811

3、比如我要配置對應的插入事件,對應的引數如下


{

"records": [{

"before": null,

"after": {

"id": "11111",

"bookName": "user1"

}

}],

"objectTypeName": "BookInfo",

"naturalStoreName": "QuickStartDemo"

}

4.最終的函式效果

參考連結:

華為AppGallery Connect 雲函式服務業務介紹:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudfunction-introduction-0000001059279544

雲函式 – 建立函式 文件說明 程式設計模型文件說明
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudfunction-programmode-0000001058311525

雲資料庫 JavaScript Server SDK文件開發指南:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-clouddb-get-started-serverjs-0000001127676879

更多精彩內容,請見華為開發者官方論壇→https://developer.huawei.com/consumer/cn/forum/home?ha_source=sanfang

相關文章