• 當前位置:首頁 > IT技術 > 數據庫 > 正文

    華為云函數中使用云數據庫的JavaScript SDK基礎入門
    2021-12-13 17:56:47

    背景介紹

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

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

    下載完Demo的項目代碼后,還需要按照以下步驟操作:

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

    開通服務

    這里涉及開通兩個服務: 首先需要使用華為賬號登錄? ??AGC網站?? ,按照以下步驟進行操作:

    1.開通云函數服務

    在AGC內選擇 "我的項目"–>選擇對應的項目->"構建"->"云函數",界面上點擊 "立即開通" , 開通以后點擊右側的創建函數即可。

    2.開通云數據庫服務

    在AGC內選擇 "我的項目"–>選擇對應的項目->"構建"->"云數據庫",界面上點擊“立即開通”,開通以后,還需要創建對應的對象類型和存儲區。 此處對應類型和存儲區的創建,我都是按照數據庫文檔中的使用入門來創建的。包括創建一個? ??BookInfo 的對象類型???, 還有一個??QuickStartDemo??的存儲區。

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_云數據庫

    云數據庫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目錄下。

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_javascript_02

    1. 下載認證憑據。

    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. 如需將本地項目運行到云函數中,需要將項目整體打包上傳,然后使用事件進行測試。注意函數入口需要在根目錄下

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_對象類型_03

    2、在AGC的云函數界面,進行文件的上傳,并且注意函數入口需要配置為index.myHandler。

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_對象類型_04

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

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_云數據庫_05

    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.最終的函數效果

    華為云函數中使用云數據庫的JavaScript SDK基礎入門_對象類型_06

    參考鏈接:

    華為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://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码