检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现处理DIS数据的功能。 场景介绍 使用数据接入服务(DIS)采集IOT实时数据流,需要将采集到的数据进行处理(比如格式转换),然后存储到表格存储服务(CloudTable Service)中,使用FunctionGraph函数可以实现此功能。
发器创建,如图1所示。 图1 创建触发器 创建后可以获得一个调用URL,通过这个URL进行函数的调用,如图2所示。 图2 请求路径 父主题: 使用FunctionGraph函数对MFA微服务进行Serverless化改造
随后单击蓝色的请求id查看日志。 图3 查看日志 图4 查看请求id详情 可以对程序进行修改,使数据可以用于调用其他系统或进行持久化存储,如存储到obs等。 父主题: 使用FunctionGraph函数对IoTDA中的设备坐标数据进行转换
内存:选择“512”。 执行超时时间:输入“15”。 其他配置项不修改。 单击“保存”,保存配置信息。 父主题: 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
企业项目:默认“default”; 日志记录:默认“ALL”; 其他参数保持默认值。 图4 保存函数流 父主题: 使用FunctionGraph函数流对OBS中的图片进行旋转
函数执行成功后,部分函数日志如图2所示,全部的日志信息,可以到“日志”页签查询。 图2 函数执行结果 父主题: 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
requestPath配置 测试独立函数。 统一使用POST请求。 请求url为添加事件源创建的APIG触发器地址。 Body体参考如下格式进行配置,如图3所示,在函数代码中可以根据需要,通过APIGTriggerEvent对象获取相应的值。 图3 Body体 { "body":
事件名称:输入您自定义的事件名称,此处以“dis-test”为例。 图2 测试事件 单击“创建”,完成测试事件配置。 父主题: 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
上传图片 使用postman触发函数流执行 上面的字节流保存成图片后如下图所示: 父主题: 使用FunctionGraph函数流对OBS中的图片进行旋转
移除 serverless remove命令 serverless remove命令将从提供商中移除当前工作目录中定义的已部署服务。 serverless remove 该命令将仅移除已部署的服务及其所有资源,本地计算机上的代码将会保留。 示例 服务移除 serverless remove
Struct 触发器 Yaml完整配置 华为云函数工作流(FunctionGraph)组件的Yaml字段如下: edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access:
Yaml文件 Yaml完整配置 华为云函数工作流(FunctionGraph)组件的Yaml字段如下: edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access:
源码仓库选择functions仓库,构建模板选择“空白构建模板”。 构建步骤,添加三个构建步骤“执行shell命令”、“上传文件到obs”和“上传软件包到软件发布库”。 执行shell命令 # 构建函数部署包 cd helloworld zip helloworld_deploy.zip cam
artifact: path/to/my-artifact.zip 分别打包函数 如果您希望对部署的函数进行更多的控制,您可以配置将它们分别进行打包。这样可以通过更多控制,对部署进行优化。要启用单独打包,请在服务或函数的打包设置中将individually设置为true。 然后,对于
打包 默认情况下,severless package命令将所有基础设施资源打包到.serverless目录中用于部署。 serverless package命令 serverless package 在该示例中,您的服务会被打包。生成的软件包将默认位于服务的.serverless目录。
10安装MySQL依赖包为例,其他版本和依赖包制作过程相同。 执行如下命令,为Nodejs 8.10安装MySQL依赖包。 npm install mysql --save 命令执行后,在当前目录下会生成一个node_modules文件夹。 使用以下命令生成ZIP包,即可生成最终需要的依赖包。 zip
安装Python库 执行如下命令,安装pyyaml库和pycryptodome库。对函数的cam.yaml配置文件进行解析,对函数的加密环境变量进行加解密。 pip3 install pyyaml pip3 install pycryptodome 安装KooCLI命令行工具 安装KooCLI命令行工具
初始化KooCLI命令行工具 执行如下命令初始化KooCLI命令行工具: hcloud configure init 需要输入Access Key ID、Secret Access key和Region Name,初始化成功如图3所示。 图3 初始化成功 执行如下命令,查看Funct
create alias for key pair. If not, please enter to skip default 命令式配置 可以通过命令式直接进行密钥的添加: $ s config add --AccessKeyID ****** --SecretAccessKey ******
HTTP终端节点 此设置指定当有人通过GET请求访问函数API终端节点时,应运行first函数。您可以在部署服务后运行serverless info命令来获取终端节点的URL。 以下是一个例子: # serverless.yml functions: hello: handler: