检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Python语言方案 前提条件 已拥有华为云账号且已实名认证。 华为云账号未欠费,且有足够金额购买本案例所涉及的资源。 操作步骤 创建函数 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击“创建函数”。 选择“创建空白函数”,填写函数信息,完成后单击“创建函数”。
FunctionGraph函数支持哪些编程语言? FunctionGraph目前支持的编程语言,如表1所示。 表1 支持的编程语言和版本 语言 支持版本 Python 2.7、3.6、3.9、3.10 Node.js 6.10、8.10、10.16、12.13、14.18、16.17
处理数据 处理模拟数据步骤如下。 用户进入DISDemo函数详情页,选择“dis-test”测试事件,单击“测试”,测试函数,如图1所示。 图1 配置测试事件 函数执行成功后,部分函数日志如图2所示,全部的日志信息,可以到“日志”页签查询。 图2 函数执行结果 父主题: 使用FunctionGraph
Python语言的函数中,中文注释报乱码错误 使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码: # -*- coding:utf-8 -*- import json def handler (event, context): output = 'Hello
函数创建后是否支持修改编程语言? 不支持,函数一旦创建完成,就不能修改运行时语言。 父主题: 创建函数
处理文件 当文件上传后更新至dew-bucket-input桶时,会生成事件,触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。
FunctionGraph支持的编程语言说明 FunctionGraph支持多种运行时语言,包括Python 、Node.js、Java、Go、C#、PHP、Cangjie及自定义运行时等,不同语言所支持的版本有所差异。 表1 运行时语言 支持版本 开发指导 Node.js 6.10
应用场景 函数工作流应用场景,如实时文件处理、实时数据流处理、Web移动应用后端和人工智能场景。 场景一:事件驱动类应用 以事件驱动的方式执行服务,按需供给,开发者无需关注业务波峰波谷,节省闲时成本,最终降低运维成本。比如视频直播/转码、实时数据流处理、IoT规则/事件处理等。 实时文件处理
处理遥测 http://localhost:{PORT},localhost是本地主机IP:127.0.0.1。 使用遥测 API 订阅后,扩展会自动开始通过遥测侦听器接收来自FunctionGraph的遥测数据。每个 POST 请求正文都包含 Event 对象数组。 订阅事件类型包括三大类
处理图片 当图片上传后更新至hugb-bucket-input桶时,会生成事件,触发函数运行,将上传图片打水印,保存在hugb-bucket-output中。 上传图片生成事件 登录对象存储服务控制台,进入hugb-bucket-input桶对象界面,上传image.jpg图片,如图
处理图片 图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。 上传图片 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示
处理结果 处理告警信息 若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,则过滤出来并转储到准备好的日志流中。以下图1和图2是过滤前和过滤后的实时日志对比。 图1 过滤前日志 图2 过滤后日志 您可以通过函数指标查看函数的调用情况,如下 3 张图所示。
处理结果 处理告警信息 若日志包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,可收到SMN发送的通知消息邮件,如图1所示。同时可以查看OBS桶中的log.txt文件,可查看到具体的告警日志内容,如图2所示。 图1 告警消息邮件通知 图2 告警日志详情 可以通过函数指标查看函数的调用情况
处理结果 若用户触发账号的登录/登出操作,订阅服务类型日志被触发,日志会直接调用用户函数,通过函数代码对当前登录/出的账号进行IP过滤,若不在白名单内,可收到SMN发送的通知消息邮件,如图1所示。 图1 告警消息邮件通知 邮件信息中包含非法请求ip地址和用户执行的动作(login/
处理结果 在Nextjs-app函数详情页面,选择“设置 > 触发器”,复制APIG触发器的调用URL。 图1 复制APIG触发器URL 在浏览器中打开URL,即可看到如图2页面。 图2 返回结果 父主题: 使用Next.js项目构建HTTP函数
NodeJS语言方案 前提条件 已拥有华为云账号且已实名认证。 华为云账号未欠费,且有足够金额购买本案例所涉及的资源。 操作步骤 创建函数 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击“创建函数”。 选择“创建空白函数”,填写函数信息,完成后单击“创建函数”。
使用Go语言程序构建HTTP函数 方案概述 本章节主要指导使用Go语言开发应用的用户,将业务部署到FunctionGraph。 由于HTTP函数本身不支持Go语言直接代码部署,因此本章节将以转换成二进制的方式为例,将Go编写的程序部署到FunctionGraph上。 操作流程 构建代码包
配置函数的并发处理 默认情况下,每个函数实例同一时刻只处理一个请求。函数收到并发请求时,例如并发三个请求,FunctionGraph会启动三个函数实例处理请求。FunctionGraph提供了单实例多并发能力,可以在一个实例上并发处理多个请求。 函数的单实例多并发适合处理逻辑中有较长时间等待下游服务响应的场景
产品功能 函数管理 提供控制台管理函数。 函数支持Node.js、Java、Python、Go、PHP、Cangjie等多种运行时语言,同时支持用户自定义运行时,说明如表1所示。 建议使用相关语言的最新版本。 表1 运行时语言说明 运行时语言 支持版本 Node.js 6.10、8.10
使用容器镜像创建函数 FunctionGraph支持加载容器镜像中的函数并运行,与直接上传代码的方式相比,用户可以使用自定义的代码包,不仅灵活,也简化了用户的迁移成本。 约束与限制 请参见配置函数的委托权限,创建一个包含“SWR Admin容器镜像服务(SWR)管理员”权限的委托,