背景介绍
应用云数据库 Server 端的 SDK,此处我以华为提供的官网 Demo 为例,他们的 Demo 也曾经开源放在了 GitHub 上,大家须要的能够自行下载。
https://github.com/AppGallery…
下载完 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/AppGallery…
下载完 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/…
3、比方我要配置对应的插入事件,对应的参数如下
{
"records": [{
"before": null,
"after": {
"id": "11111",
"bookName": "user1"
}
}],
"objectTypeName": "BookInfo",
"naturalStoreName": "QuickStartDemo"
}
4. 最终的函数成果
参考链接:
华为 AppGallery Connect 云函数服务业务介绍:
https://developer.huawei.com/…
云函数 – 创立函数 文档阐明 编程模型文档阐明
https://developer.huawei.com/…
云数据库 JavaScript Server SDK 文档开发指南:
https://developer.huawei.com/…
更多精彩内容,请见华为开发者官方论坛→https://developer.huawei.com/…