本章主要介绍如何创建函数计算类型的边缘应用。

前提条件

已根据阿里云函数计算内容,创建了函数。

操作步骤

  1. 物联网平台控制台,选择边缘计算 > 应用管理
  2. 应用管理页面,单击新增应用
    新增应用
  3. 设置应用参数,然后单击确认
    • 应用信息函数计算应用-应用信息
      表 1. 应用信息参数说明
      参数 描述
      应用名称 设置您应用的名称,允许英文字母、数字和下划线(_),最多不超过128个字符。
      应用类型 有如下三种类型。

      此处选择函数计算

      地域 选择您的函数计算所在的地域。
      服务 选择您函数所在的服务。
      函数 选择您已创建的函数。
      注意 使用Python语言开发的函数,仅支持在Link IoT Edge专业版实例中使用。
      授权 选择授权阿里云函数计算的角色。角色相关说明请参见云资源访问
      应用版本 设置应用的版本,必须是该应用唯一的版本号,即一个应用不可以设置两个相同的版本号。
      版本描述 描述您的应用版本,例如版本功能等。可以为空。
    • 函数配置函数计算类型应勇-函数配置
      表 2. 函数配置参数说明
      参数 描述
      运行模式 分为按需运行和持续运行两种模式。
      • 按需运行:是函数计算原生的运行模式,函数部署到边缘端后不会立即运行,只有当事件触发时函数才会被加载运行,处于运行状态的函数一段时间内没有新的事件触发会停止运行。当您的程序是基于事件触发运行,且事件触发频率低于20分钟一次,建议选择按需运行,可以有效减少对边缘网关的CPU、内存等资源的压力。如果事件触发频率较高,按需运行的函数也会保持运行,以保证事件的响应速度。
      • 持续运行:是边缘端特有的运行模式,函数部署到边缘端后会立即加载运行,用来满足传统的服务端程序常驻运行的需要。当您的程序是服务端程序,需要监听端口独立响应请求(如HTTP Server),请选择持续运行。Link IoT Edge会负责函数的保活,当函数异常退出时,函数将会被重新运行。
      内存限制 设置函数的内存使用上限,当函数内存使用超过限制时会被重启。避免因函数内存泄漏而导致系统不稳定。如果内存限制值过小,可能会导致函数运行失败。默认为512 MB,一般情况使用默认值即可。
      超时限制 当事件触发时,会调用代码中handler接口处理事件。正常情况下事件处理完成会发送应答消息返回处理结果,同时表明事件处理结束。如果函数超过此处的设定事件仍未返回结果,则认为函数运行异常,此时函数会被重启。
      定时运行 配置函数定时触发的时间点和频率,格式为Cron表达式。例如,* * * * *表示每分钟触发一次函数,20 * * * *表示每小时的第20分钟触发一次函数。详情请参见CRONTAB 网页
      环境变量 自定义配置的环境变量,在函数计算代码运行时可以直接读取到。单击新增环境变量,通过设置变量名称、变量值增加环境变量。最多可配置10条环境变量。

      该功能是为了做到代码和配置的分离,增强代码的可移植能力。例如,函数计算代码需要请求网络上其它主机的服务,在不同环境下服务器的IP地址和端口通常是不同的。通过环境变量将IP和端口信息作为配置参数传入,不同环境下的网关就可以共用同一份函数计算代码。

    • 容器配置函数计算类型应用-容器配置
      表 3. 容器配置参数说明
      参数 描述
      是否使用宿主机host模式 选择是否隔离容器的网络。直接使用宿主机网络环境。
      • 是:表示不隔离容器的网络,直接使用宿主机网络环境。
      • 否:表示隔离容器的网络,需要设置网络端口映射
      网络端口映射 是否使用宿主机host模式时出现的参数。函数的网络环境和宿主机的环境是完全隔离的。通过网络端口映射,将容器内函数的监听端口映射到宿主机的某一个端口上,实现不同主机上的客户端程序,能够访问该函数提供的服务。最多支持映射10条网络端口。

      例如,运行在宿主机容器内的 fc-http-server函数,通过监听Socket的80端口对外界提供服务。此时,其它主机上的客户端程序访问宿主机的80端口,是无法直接访问 fc-http-server函数。因此需要将 fc-http-server函数所在的容器端口映射到宿主机的某一个端口上(例如将容器内的80端口映射到宿主机8080端口),允许其它主机上的客户端程序通过访问 宿主机的IP地址:8080,访问到容器内部的 fc-http-server函数。

      是否启动特权模式

      容器内的root用户实际上只是宿主机的一个普通用户。若在容器内部做修改系统时间、使用mount命令等需要root权限的操作,则需要赋予容器privileged特权。

      说明 特权模式下,容器内部拥有宿主机的root权限,而且宿主机的所有设备会默认映射到容器内部,即无需配置设备映射
      设备映射 是否启动特权模式时出现的参数。设备管理系统和宿主机的环境是完全隔离的。当一个函数需要访问宿主机的设备(例如串口)时,需要将设备映射到运行函数的容器内部。最多可添加10个设备映射。
      卷映射 文件系统和宿主机的环境是完全隔离的。当一个函数需要访问宿主机的文件时,需要将文件映射到运行函数的容器内部。最多可添加10个卷映射。
  4. 创建完成应用后,可在边缘计算 > 应用管理页面的应用列表下查看。您也可以通过操作栏按钮,进行更多操作。
    应用更多操作
    • 版本管理

      单击版本管理,可对该应用的版本进行新增、修改和删除操作。

      应用版本管理
    • 删除

      单击删除,可删除该应用。删除应用时,会删除该应用的所有版本,请谨慎操作。

后续步骤

请参见分配边缘应用到边缘实例内容,将已创建好的边缘应用分配到边缘实例。您也可以参考物联网边缘计算提供的函数计算类型应用示例,创建您自己的函数计算应用。