上云无忧 > 文档中心 > 百度智能云智能边缘函数应用 - 从CFC引入多个函数下发
智能边缘
百度智能云智能边缘函数应用 - 从CFC引入多个函数下发

文档简介:
本章主要介绍如何在函数应用中配置多个从百度 CFC 中导入的函数: CFC 函数创建: 本文将以 Python3.6 为例进行说明。 从百度智能云控制台进入 函数计算CFC,我们选择"华南-广州"区域,点击“创建函数”按钮,选择“空白函数”。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本章主要介绍如何在函数应用中配置多个从百度 CFC 中导入的函数

CFC 函数创建

本文将以 Python3.6 为例进行说明。

从百度智能云控制台进入 函数计算CFC,我们选择"华南-广州"区域,点击“创建函数”按钮,选择“空白函数”。

然后,函数名称取名 “bie-cfc-demo”,运行时选择 “Python 3.6”,点击“提交”按钮。

创建成功,我们点击 “进入代码编辑页”。

CFC函数代码页面自动为我们生成 “Hello World” 函数。

函数的入口只能拥有一个,但支持添加多个函数,互相调用,我们新增两个函数:

def add(event, context): result = {} result['result'] = event['x'] + event['y'] + event['z'] resul
t['result2'] = add2(event, context)['result'] return result def add2(event, context): result = {}
 result['result'] = event['x'] + event['y'] + event['z'] return result

我们新增了 add 和 add2 两个函数,可以看到 add 函数中调用了 add2 函数。然后当前代码点击“保存”按钮,处理程序中修改入口函数为 index.add ,并点击“确定”按钮。

代码新增完成后,我们进行一个测试,来确认代码执行是否正常。点击函数代码页面中的“测试”按钮,如下图:

我们在测试事件页面中,新建一个测试用例,例子如下:

{ "x": 1, "y": 2, "z": 3 }

事件模板我们选择 “HelloWorld模板”,事件名称我们取名为 “biecfccompute”,下面测试代码框我们输入上面的json代码,点击“创建”按钮,后续我们还会用到这个测试事件。

弹出消息显示“创建成功”,随后我们点击 “执行” 按钮来对新增的 add 和 add2 函数进行测试。

测试结果 {"result": 6, "result2": 6} 为我们 add 函数的结果,可以看到,输出结果正确。

然后,我们再对 add2 函数进行测试,我们回到函数代码页面,修改处理程序为 index.add2 ,并点击“确定”按钮。

修改处理程序后我们还需要进行测试,来查看是否修改成功,选择 biecfccompute 测试事件再次进行测试,点击“执行”按钮。

可以看到结果为 {"result": 6} ,输出结果正确。

最后,我们需要发布新版本,才可以被存储卷引入。

CFC 配置项创建

回到智能边缘控制台,我们需要创建"配置项"来引入上步中创建的 CFC 函数。

我们需要设置配置项函数标签,表示这个是一个函数配置项,可供函数应用引用。

然后选择导入函数选项,选中 CFC 函数名称和版本,点击确定,完成导入操作。

CFC 应用创建

创建函数应用,并选择上步创建的 CFC 配置项。

到此,CFC 函数导入成功。

新建节点

接下来我们配置边缘规则 baetyl-broker、baetyl-rule 模块来调用 CFC 函数。

在节点创建界面,新建节点。

并将上步中创建的 CFC 应用绑定到该节点上。

配置 baetyl-rule

在节点"应用部署"菜单栏,选择 baetyl-rule 模块,点击查看。

然后点击数据卷,选择第一个配置项进行配置。

baetyl-rule 的配置如下

rules: - name: rule1 source: topic: broker/topic1 target: topic: broker/topic2 
function: name: bie-cfc-compute/add - name: rule2 source: topic: broker/topic1 
target: topic: broker/topic3 function: name: bie-cfc-compute/add2 logger: level: debug encoding: console

更新配置项并保存。

配置 baetyl-broker

按照上步方法配置 baetyl-broker, 配置文件如下:

listeners: - address: tcp://0.0.0.0:8004 principals: - username: test password: hahaha
 permissions: - action: pub permit: ["#"] - action: sub permit: ["#"] logger: level: info

并在 baetyl-broker 的服务配置界面添加 8004 端口,将服务暴露到宿主机上。

上述配置成成功后,在端侧执行 kubectl 可以看到如下现象:

端侧验证

等待上述服务部署到端侧后,我们使用 mqttbox 发送消息到 baetyl-broker 来进行测试。

首先我们使用 mqttbox 连接,连接信息如下:

连接成功后,如下所示:

我们的输入用例为 {"x":1,"y":2,"z":3} 结果如图,输出结果正是我们在CFC函数中 add 和 add2 函数计算的结果。

相似文档
  • 在编写函数时,我们常常会需要引用第三方依赖,本文将介绍如何把代码以及第三方依赖上传至云端 BOS,并在函数应用中引入该函数。 本文将以 Python3.6 为例进行说明。
  • 1、背景描述: 在使用边缘函数时,边缘函数常常需要使用import来引用第三方依赖。本文将介绍如何将依赖包上传至对象存储,以及如何在编写函数代码时直接引用依赖包。本文将以 Python3.6 为例进行说明。
  • 1、场景: 边缘节点上部署了AI模型,现在希望使用函数触发式调用AI模型,并将AI模型返回结果发送到边缘Broker当中,供其他用户应用订阅。 2、方案: 整体边缘函数调用结构如下图所示:
  • 配置项是一种用于存储应用所需配置信息的资源类型,配置项允许您将配置文件从应用容器镜像中解耦,从而增强应用的可移植性。和密文类型配置存储敏感信息不同,配置项主要用于存储常规的配置信息,例如一组配置文件。
  • 函数配置项是配置项的子集,默认添加了函数标签。用于存储函数应用需要加载的程序脚本,支持 Python36、Nodejs10、SQL 等运行时。添加函数标签后,可以在创建函数应用时选择该配置项使用。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部