检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
端侧文件上传云服务器是Web和App应用的一类场景,例如服务运行日志的上报,Web应用图片上传等,函数可作为后端,结合APIG提供通用的API处理这类场景。本章节以NodeJS和Python语言为例,指导用户如何开发后端解析函数,获取上传的文件。 约束与限制 单次请求上传文件大小不超过6MB。
扩展函数的存储空间 FuncitonGraph提供了磁盘挂载功能,通过挂载文件系统可为函数带来如下优势: 相比于临时存储空间/tmp,可以极大的扩展函数的执行存储空间。 多个函数之间可以挂载同一个文件系统,共享访问已经配置好的文件系统。 利用ECS已有的存储能力,可实现计算资源的动态扩展。
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK")
APIC的触发使用过程请参考使用APIC触发器。 对象存储服务 OBS 可以编写FunctionGraph函数来处理OBS存储桶事件,例如对象创建事件或对象删除事件(OBS示例事件)。当用户将一张照片上传到存储桶时,OBS存储桶调用FunctionGraph函数,实现读取图像和创建照片缩略图。 OBS对象操作触发函数的过程请参考:
数的调用处理一致。 一般场景下,多个请求处理可以共享的业务逻辑适合放到初始化函数,以降低函数时延,例如深度学习场景下加载规格较大的模型、数据库场景下连接池构建。 约束与限制 函数初始化入口需要和函数执行入口在同一文件下。 开启函数初始化功能后,各运行时的函数初始化入口命名规范与原有函数执行入口保持一致。如Node
数据处理类实践 使用FunctionGraph函数对OBS中的图片进行压缩 使用FunctionGraph函数为OBS中的图片打水印 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable 使用FunctionGraph函数实现通过API方式上传文件
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK")
本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token接口说明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。 您还可以通过这个视频教程了解如何构造请求调用API:https://bbs.huaweicloud.com/videos/102987
zip),解压缩,在Eclipse中导入工程,如图1所示。 图1 样例代码说明 在样例代码中,需要修改proID(项目ID)、clusID(集群ID)、hostName(表格存储服务的endpoint)并保存。 项目ID获取方法:进入“个人中心 > 我的凭证”,如图2所示,在“项目列表”获得项目ID,如图3所示。 图2
在函数列表中打开函数,单击“设置 > 触发器”。 单击已配置的APIG触发器名称,跳转到APIG服务页面。 图1 单击触发器名称 单击右上角的”编辑”。 图2 单击“编辑” 单击“下一步”到“定义后端服务”页面,修改调用类型为“Asynchronous”。 图3 修改调用类型
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK")
运行函数时报错error while loading shared libraries时如何处理? 出现如图1报错,说明依赖包没有把程序运行所需的动态链接库打包进去。 图1 error while loading shared libraries 针对该问题有以下两种处理方案:
测试事件,单击“测试”,测试函数,如图1所示。 图1 配置测试事件 函数执行成功后,部分函数日志如图2所示,全部的日志信息,可以到“日志”页签查询。 图2 函数执行结果 父主题: 使用FunctionGraph函数对DIS数据进行格式转换并存储到CloudTable
函数发起HTTP请求的源地址如何获取? 公网访问 函数未开启“函数访问VPC内资源”功能时访问公网。 访问公网时使用函数工作流服务的SNAT地址,该地址是固定的,如何获取请咨询技术支持工程师。 图1 未开启函数访问VPC内资源 函数开启“函数访问VPC内资源”功能时访问公网。(相关VPC配置详情请参见配置网络)
String 文档数据库名称(DDS触发器参数)。 db_password String 文档数据库密码(DDS触发器参数)。 db_user String 文档数据库用户名(DDS触发器参数)。 instance_addrs Array of strings 文档数据库实例地址(DDS触发器参数)。
事件,如图1所示,弹出“配置测试事件页”。 图1 配置测试事件 在“配置测试事件页”,输入配置信息,如图2所示。 配置测试事件:选择“创建新的测试事件”。 事件模板:选择“数据接入服务(DIS)”。 事件名称:输入您自定义的事件名称,此处以“dis-test”为例。 图2 测试事件
} 步骤二:测试函数 在函数详情页,单击“测试”,在弹窗中创建新的测试事件。 选择“空白模板”,事件名称输入“test”,测试事件修改为如下所示,完成后单击“创建”。 { "hello": "function" } 图2 配置测试事件 步骤三:查看执行结果 单击test事件
conflicts with that of an existing OBS trigger. 当前触发器的存储桶配置与现有OBS触发器的存储桶配置冲突 检查触发器的存储桶配置与现有OBS触发器的存储桶配置是否冲突 403 FSS.1121 Forbidden 访问受限,请检查是否有配置对应的DMS委托
触发函数运行,将文件加解密,保存在dew-bucket-output中。 上传文件生成事件 登录对象存储服务控制台,进入dew-bucket-input桶对象界面,上传image.jpg文件,如图1所示。 图1 上传文件 触发函数自动运行 上传文件至dew-bucket-inp
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK")