检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
成长地图 | 华为云 函数工作流 函数工作流(FunctionGraph)是华为云提供的一款无服务器(Serverless)计算服务,无服务器计算是一种托管服务,服务提供商会实时为你分配充足的资源,而不需要预留专用的服务器或容量,真正按实际使用付费。 免费体验 图说函数工作流 仅两个按钮时选用
服务韧性 华为云数据中心按规则部署在全球各地,所有数据中心都处于正常运营状态,无一闲置。数据中心互为灾备中心,如一地出现故障,系统在满足合规政策前提下自动将客户应用和数据转离受影响区域,保证业务的连续性。为了减少由硬件故障、自然灾害或其他灾难带来的服务中断,华为云为所有数据中心提供灾难恢复计划。
APIG网关事件 华为云函数工作流可以通过API网关(APIG)创建基于函数的API终端节点。 要创建HTTP终端节点作为华为云函数工作流的事件源,请使用http事件语法。 HTTP终端节点 此设置指定当有人通过GET请求访问函数API终端节点时,应运行first函数。您可以在部署服务后运行serverless
Function面板中,选择需要传入的事件,单击“Invoke”,函数的日志以及结果会输出在OUTPUT中。 下载云端函数 前提 用户已添加获取桶对象(obs:object:GetObject)的权限。 选择您需要操作的函数,鼠标右键单击“Download...”,选择您要下载的路径,函数代
de-modules.zip”。 将“nextjs-node-modules.zip”上传到华为云“上海一”的任意OBS桶中,并复制其链接备用,更多详情请参见上传对象。 图3 复制OBS桶链接 登录函数工作流控制台,在左侧导航栏选择“函数 > 依赖包管理”,单击“创建依赖包”,配置如下参数:
触发事件的类型,本实践通过上传或更新桶对象触发函数执行。 “通过页面或Put请求创建或覆盖桶对象。”、“使用Post请求创建或覆盖桶对象。” 对象名前缀 可选参数。 用来限制以此关键字开头的对象的事件通知,该限制可以实现对OBS对象名的过滤。 保持默认,不填写。 对象名后缀 可选参数。 用来限
将文件上传到特定的OBS桶中。 将用户上传的每个文件进行加/解密。 将处理完后的文件上传到另一个指定的OBS桶中。 本教程必须使用两个不同的OBS桶。 保证函数和OBS桶在一个区域(区域都选择默认即可)。 实现流程 在OBS服务中,创建两个桶。 创建函数,设置OBS应用事件源。(当
事件 任何触发华为云函数工作流的函数执行的事物都被Framework视为事件。事件是指华为云函数工作流上的平台事件,例如:API网关服务和API(例如,REST API)、OBS桶(例如,上传到桶中的镜像)等等。 在Serverless Framework中为华为云函数工作流定义
UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 codeUrl False String 当CodeType为obs时,该值为函数代码包在OBS上的地址,CodeType为其他值时,该字段为空。
-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。 图1 上传文件 触发函数自动运行 上传文件至dew-bucket-input桶,OBS生成事件触发函数运行,对文件加解密,输出文
触发器名称:自定义。 桶:选择创建OBS桶中创建的“hugb-bucket-input”桶。 事件类型:选择“通过页面或Put请求创建或覆盖桶对象。”、“使用Post请求创建或覆盖桶对象。”。 图1 创建OBS应用事件源 单击“确定”,完成触发器创建。 OBS应用事件源创建以后,当有图片
部署 serverless deploy命令 serverless deploy命令通过华为云API部署整个服务。当您编辑serverless.yml文件更改了服务时,请运行此命令。 serverless deploy 产物 执行serverless deploy命令后,所有创建的部署产物都将放置在服务的
如图1所示。 桶选择创建OBS桶中创建的“input_bucket”桶。 事件选择“通过页面或Put请求创建或覆盖桶对象”和“使用Post请求创建或覆盖桶对象”。 图1 创建OBS应用事件源 单击“确定”,完成触发器创建。 OBS应用事件源创建以后,当有文件上传或更新至dew-b
后缀 可选参数。 用来限制以此关键字结尾的对象的事件通知,该限制可以实现对OBS对象名的过滤。 - 触发函数 登录对象存储服务控制台,将文件上传至“obs-cff”OBS存储桶,具体步骤请参见上传文件。 成功上传文件至“obs-cff”OBS存储桶后,会自动触发函数运行,可在函数执行日志查看执行结果。
output中。 上传图片生成事件 登录对象存储服务控制台,进入hugb-bucket-input桶对象界面,上传image.jpg图片,如图1所示。 图1 上传图片 触发函数自动运行 上传图片至hugb-bucket-input桶,OBS生成事件触发函数运行,为图片打水印,输出
图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。 上传图片 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示。 图1 示例 图2 上传图片 使用postman触发函数流执行
已创建桶并将函数代码包上传至OBS桶中。 上传函数代码 登录对象存储服务控制台,请参考通过URL访问OBS对象复制所需的代码包对象URL。 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。 在函数列表中,单击函数名称进入函数详情页。 在“代码”页签,右侧选择“上传代码 > OBS地址”
SMN消息触发的使用过程请参考使用SMN触发器。 对象存储服务 OBS 可以编写FunctionGraph函数来处理OBS存储桶事件,例如对象创建事件或对象删除事件(OBS示例事件)。当用户将一张照片上传到存储桶时,OBS存储桶调用FunctionGraph函数,实现读取图像和创建照片缩略图。 OBS对象操作触发函数的过程请参考:
JsonSerializer.dll 。 提供的接口如下: T Deserialize<T>(Stream ins):反序列化值传递到Function处理程序的对象中。 Stream Serialize<T>(T value):序列化值传递到返回的响应负载中。 本例以Visual Studio 2017新建一个
访问密钥(AK/SK,Access Key ID/Secret Access Key)包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,是您在华为云的长期身份凭证,您可以通过访问密钥访问华为云API。 创建访问密钥成功后,您可以在访问密钥列表中查看访问密钥ID(AK),在下载的.csv文件中查看访问密钥(SK)。