检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
简介 Serverless Framework帮助您使用华为云函数工作流开发和部署无服务器应用。它是一个CLI,提供开箱即用的结构、自动化功能和最佳实践,您可以专注于构建复杂的、事件驱动的、无服务器架构,由函数和事件组成。 Serverless Framework与其他应用程序框架不同
凭证 Serverless Framework需要访问您的华为云账号的凭证,代表您创建和管理资源。 创建华为云账号 打开华为云官网,选择“注册”,详情请参考注册华为账号并开通华为云。 获取凭证 您需要创建凭证,以便Serverless可以使用它们在项目中创建资源。 进入“访问密钥”
服务 service就像一个项目,您可以在服务中定义华为云函数工作流的函数和触发它们的events,所有这些都在一个名为serverless.yml的文件中。 若您要构建第一个Serverless Framework项目,请先创建一个service。 组织 在最初使用应用时,建议您可以使用单个服务来定义该项目的所有函数和事件
事件 简单地说,事件主要用于触发函数运行。 如果您选择华为云作为提供商,则服务中的events仅限于华为云API网关(APIG)和OBS,具体详情请参见事件列表。 部署后,Framework将设置您的function应该侦听的相应事件配置。 配置 事件属于每个函数,可以在serverless.yml
变量 Serverless Framework提供了一个强大的变量系统,您可以将动态数据添加到serverless.yml中。使用Serverless变量,您将能够执行以下操作: 引用并加载环境变量中的变量。 引用并加载CLI选项中的变量。 递归引用同一serverless.yml
安装 Serverless是一个Node.js CLI工具,因此您需要先在计算机上安装Node.js。 请访问Node.js官方网站,下载并按照安装说明在本地计算机上安装Node.js。 您可以通过在终端中运行node --version来验证Node.js是否安装成功,即可以看到打印出来的对应
事件列表 APIG网关事件 OBS事件 父主题: Serverless Framework
别名alias alias命令是对函数别名操作的命令;主要包括别名的查看、发布、修改、删除等功能。 命令解析 当执行命令alias -h/alias --help时,可以获取帮助文档。 在该命令中,包括了四个子命令: alias get命令 alias list命令 alias publish
快速入门 本章节旨在帮助您尽快了解Serverless Framework的使用。 初始化设置 您需要安装和配置以下几个前提条件: 在本地计算机上安装Node.js 14.x或更高版本,详情请参见安装Node.js和NPM。 安装Serverless Framework开源CLI版本
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
Yaml文件 Yaml完整配置 华为云函数工作流(FunctionGraph)组件的Yaml字段如下: edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范 name: fg-test # 项目名称 access
") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder().
使用FunctionGraph函数对MFA微服务进行Serverless化改造 案例概述 准备 构建程序 添加事件源 测试函数 父主题: 函数构建类实践
部署deploy deploy命令 deploy 命令是对函数资源进行部署的命令,即将本地在 Yaml文件 中声明的资源部署到线上。 deploy命令解析 当执行命令deploy -h/deploy --help时,可以获取帮助文档。 在该命令中,包括了两个子命令:deploy function
OBS事件 华为云函数可以由不同的event源触发。这些事件源可以通过event定义和配置。 OBS事件 此示例设置一个OBS事件,每当对象上传到my-service-resource时,该事件将触发first函数。 # serverless.yml functions: first
删除remove remove命令 remove 命令是对已经部署的资源进行移除的操作。资源一旦移除可能无法恢复,所以在使用移除功能时,请您慎重操作。 命令解析 当执行命令remove -h/remove --help时,可以获取帮助文档。 在该命令中,包括了四个子命令: function
华为云函数工作流(FunctionGraph)Yaml规范 字段解析 表1 参数说明 参数名 必填 类型 参数描述 region True Enum Enum function True Struct 函数 trigger False Struct 触发器 Yaml完整配置 华为云函数工作流
函数初始化入口Initializer 概述 Initializer是函数的初始化逻辑入口,不同于请求处理逻辑入口的handler,在有函数初始化的需求场景中,设置了Initializer后,FunctionGraph首先调用initializer完成函数的初始化,之后再调用handler
使用TIMER定时触发器 本节介绍如何通过函数工作流控制台创建定时触发器,使用TIMER的计划事件功能,实现按照设置的频率或指定Cron表达式,定期触发函数运行。 关于定时触发器事件源的具体介绍,请参见支持的事件源。 约束与限制 HTTP函数不支持创建定时触发器。 前提条件 已创建函数
测试函数 测试托管方式改造函数,调用方法如图1所示。 图1 测试函数调用的方法 调用时,遵循原来的请求方法。 请求url为添加事件源创建的APIG触发器地址。 需要在headers里配置requestPath,值为图1中的@Path(可能会包含一些服务前缀,对应微服务改造之前的请求