​​


文章目录


我们传统的应用开发中,部署一个应用服务器基本上是必须的,而通过serverless应用部署我们自己的应用则无需搭建服务器,也不需要部署相应环境,只需要简简单单几行代码就可以在线部署我们的应用。话不多说,先给大家看一下效果图。


我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划

上面是一个智能计算器应用,通过8行代码我们就可以部署一个属于自己的智能计算器,当然还可以体验其它有趣的功能。

1准备工作


  1. linux,mac等环境(有其中一个即可,不能是windows),如果没有,采用ubuntu虚拟机或者linux网络服务器也可以(非必须),今天主要介绍采用ubuntu虚拟机的方式
  2. 飞书开放平台账号注册
  3. 飞书下载

​​

2 基于飞书开放平台创建机器人应用

2.1 飞书开放平台账号注册

​​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless_02

注册完成后采用手机号方式进行登录

飞书开放平台主界面

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless framework_03

2.2 创建机器人应用

点击​​创建应用​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_04

创建企业自建应用

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_05

填写应用基本信息,点击确认创建

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless_06

当前应用处于待上线状态

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_07

2.3 配置机器人应用信息

点击刚才创建的应用,点击​​机器人​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_08

点击启用机器人

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_09

3 Serverless Reactor配置飞书应用


Serverless Reactor 面向飞书、Slack、钉钉等即时通讯工具的开发者,为开发者提供快速搭建上线第三方应用的开发体验。通过 Serverless Reactor,开发者只需专注业务逻辑的实现,无需搭建应用的服务器、域名备案、数据存储等繁琐流程。
程序使用 WebAssembly(WASM) 分发,runtime 使用 WasmEdge-napi,给予开发者较大的语言选择自由度,并保证执行效率。
具体流程如下:
开发者把飞书平台所需要的每个 callback 写成一个函数
开发者把函数代码上传到 Serverless Reactor 平台,收到一个 callback URL
开发者把这个 callback URL 填在飞书平台需要 callback 的地方


注册Serverless Reactor账号(通过邮箱注册)

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_10

注册后邮箱会收到一封链接,点击验证,然后进行登录

登录首页

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_11

点击左上角apps

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_12

点击创建new app

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_13

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless framework_14

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_15

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_16

填写玩欢迎语后点击完成

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_17


欢迎语采用json格式,在启用机器人时显示


在列表可以看到我们刚才创建的应用

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless_18

4 上传自定义函数配置文件


这里默认大家已经搭建好ubuntu虚拟机环境


4.1安装nmp环境

在终端输入下面命令

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm install
npm run build
npm -v

4.2 配置rust和rustwasmc环境

在终端输入下面命令安装rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_19

在终端输入下面命令安装rustwasmc(管理员模式,需要输入密码)

sudo npm install -g rustwasmc  --unsafe-perm

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless framework_20

4.3 fork计算器源代码到本地

github链接:​​https://github.com/second-state/serverless-reactor-starter​​​

下载zip压缩包到本地

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_21

进行解压

解压后生成的文件

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_22

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_23

在文件夹内打开终端

在文件夹内右击选择​​open in terminal​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_24

输入下面命令

rustwasmc bulid

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless framework_25

编译完成后可以看过原来的文件夹里面多了一个pkg文件夹

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_26

里面生产我们需要上床的.wasm文件

4.4 上传.wasm文件

回到Serverless Reactor主界面,点击​​upload wasm file​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_27

将刚才生成的.wasm文件可以现在虚拟机中拖拽到windows中在上传(安装vmtools可以直接拖拽)

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_28

上传后复制service url

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_29

回到飞书开放平台,点击​​时间订阅​

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_30

编辑请求网址,将刚才的复制service url复制过来

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_31


这里需要注意的是复制网址后还需要在后面添加​​/internal​​ 添加事件
我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_32


我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_33

4.5 版本发布

在版本发布与管理中创建新建版本

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_34

版本填写1.0即可

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_35

点击保存

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_原力计划_36

然后申请发布

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless_37

等待审核通过

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless_38

5 在本地安装飞书应用

5.1 注册登录飞书

以windows为例

下载链接:https://www.feishu.cn/download

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_39

下载安装包后默认安装即可

安装完成后进行登录

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_40

应用主界面

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_飞书_41

在搜索栏搜索计算器

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_linux_42

可以看到我们创建的应用

5.2 计算机机器人应用体验

我的 Serverless 实战—8行代码手把手教你搭建智能机器人平台_serverless framework_43