创建HTTP函数
如需使用流行Web应用框架编写函数代码和构建AI项目,可创建HTTP函数,并根据业务需求完成函数代码、网络配置及函数触发器等必要配置。本章节介绍如何通过控制台创建HTTP函数并提供HTTP使用示例。
FunctionGraph支持创建空白事件函数和HTTP函数,关于事件函数与HTTP函数的选型对比请参考表1。
对比项 |
事件函数 |
HTTP函数 |
---|---|---|
功能 |
用于处理文件和数据流,可以通过各类云产品的事件触发,以及用于处理异步请求,能够追踪并保存每个异步调用的状态。 |
支持流行的Web应用框架和AI项目,可以通过浏览器访问,或通过URL调用。 |
适用场景 |
|
|
HTTP函数概述
HTTP函数专注于优化 Web 服务场景,用户可以直接发送HTTP请求到URL触发函数执行,从而使用自己的Web服务。HTTP函数支持HTTP/1.1协议。
HTTP函数有以下优势:
HTTP函数公共请求头
HTTP请求头是HTTP协议中用于传递元数据的重要组成部分,在函数调用时可以传递特定的元数据或配置信息,函数默认携带的公共请求头字段如表2所示。
约束与限制
限制类别 |
具体限制 |
---|---|
创建函数数量限制 |
单个账户下最大允许创建的函数个数默认为400个,如需扩大配额请提交工单。 |
HTTP函数限制 |
|
其他限制 |
|
前提条件
- 使用函数工作流控制台的所有操作均默认具有操作权限,请确保您登录的用户已有“FunctionGraph Administrator”权限,即FunctionGraph服务所有权限,更多权限的说明请参考权限管理。
- 如果函数工作流服务需要访问云日志服务LTS、虚拟私有云VPC等其他云服务进行协同工作,则需创建函数委托并授权函数工作流服务访问所需云服务的权限;若函数工作流服务无需访问其他云服务,则无需创建和选择函数委托。
- 如果需要配置函数工作流服务访问VPC内资源,请参考创建虚拟私有云和子网创建VPC和子网。
创建HTTP函数
- 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 单击右上方的“创建函数”,进入“创建函数”页面。
- 如图1所示,创建方式选择“创建空白函数”,参考表4配置函数基本信息,参考表3配置函数高级设置参数。
表4 函数基本信息 参数
说明
取值样例
函数类型
选择HTTP函数。
处理HTTP请求的函数,可以直接发送HTTP请求到URL触发函数执行,从而使用Web服务。
HTTP函数
区域
选择函数所在的区域。
不同区域的资源之间内网不互通,请就近选择靠近您业务的区域,可以降低网络时延、提高访问速度。
华东-上海一
函数名称
输入自定义的函数名称,命名规则如下:
- 可包含字母、数字、下划线和中划线,长度不超过60个字符。
- 以大/小写字母开头,以字母或数字结尾。
FG-demo
企业项目
选择函数所属的企业项目。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
默认为“default”,支持用户选择已创建的企业项目。
如果您没有开通企业管理服务,将无法看到企业项目选项。开通方法请参见如何开通企业项目。
default
委托
选择函数的委托。通过委托来授权函数工作流来访问其他云服务,若函数不访问任何云服务,则无需选择委托。
默认“未使用任何委托”,支持选择已创建的委托。
当华为云账号下无函数默认委托时,FunctionGraph提供快速创建默认委托“fgs_default_agency”的功能,详情请参见默认委托。
fgs_default_agency
委托权限策略
此参数仅在选择使用委托时显示。
选定委托后将展示该委托关联的权限策略,如需调整权限策略,请参考修改函数委托通过IAM控制台进行操作。
DIS User; SWR Admin; fgs_default_region_role; fgs_default_global_role
图2 创建函数高级设置参数说明表5 创建函数高级设置参数说明 参数
说明
取值样例
函数访问公网
开启时,函数可以通过默认网卡访问公网上的服务,其公网访问带宽为用户间共享,仅适用于测试场景。
开启
函数访问VPC内资源
开启此参数需要函数配置包含VPC管理权限的委托,若基本信息的委托中选择“未使用任何委托”则无法开启。
开启时,函数将使用配置的VPC所绑定的网卡进行网络访问,同时禁用函数工作流的默认网卡,即开关“函数访问公网”参数将不生效。
开启后可选择函数需访问的VPC及其子网。
未开启
日志记录
启用日志功能后,函数运行过程中产生的日志会上报到云日志服务(LTS)。
注意:LTS将按需收取日志管理费用,详情请参见云日志服务价格详情。
开启后可配置以下参数:
未开启
KMS静态加密代码
当前仅“拉美-圣保罗一”区域支持配置该参数。
选择是否使用KMS静态加密函数代码。
注意:数据加密服务DEW将按需收取费用,详情请参见数据加密服务计费说明。
支持选择以下加密类型:
- (默认)functiongraph/default:函数会在您账号下的DEW服务中自动创建默认密钥,您无需手动创建。
首次使用该默认密钥进行加解密,需确保函数委托中拥有以下权限:kms:dek:decrypt、 kms:dek:create、 kms:cmk:create、kms:cmk:get、 kms:cmk:list。
- 使用用户主密钥:支持选择已创建的密钥加密函数代码,创建用户主密钥可参考创建自定义密钥。使用用户主密钥,需确保函数委托中拥有以下权限:kms:dek:decrypt、 kms:dek:create、 kms:cmk:get、 kms:cmk:list。
注意:
若选择“使用用户主密钥”,在后续使用中请勿在DEW服务中删除用于函数加密的主密钥,否则将因加密数据无法解密而导致函数执行失败。
请参考JSON视图配置自定义策略前往IAM控制台配置函数的委托权限策略。
(默认)functiongraph/default
- 配置完成后单击“创建函数”,页面跳转至函数详情配置页面,界面上方显示成功创建函数。
- 完成函数创建后,请参见配置函数,根据业务需求完成各项配置,即可使用函数。
HTTP函数使用示例
以下以一个完整的HTTP函数创建和配置示例介绍HTTP函数的使用方法。
在调用API前,请先确保您的业务系统所在网络与API的访问域名或地址互通:
相关文档
- 使用Go语言构建FunctionGraph HTTP函数的实践,详情请参见使用Go构建FunctionGraph HTTP函数。
- 使用已有SpringBoot项目构建HTTP函数的实践,请参见使用已有SpringBoot项目构建HTTP函数。
- 使用Next.js项目构建HTTP函数的实践,详情请参见使用Next.js项目构建HTTP函数。
- 针对不同使用场景,函数工作流支持通过在线编写代码、上传代码文件或者使用容器镜像,创建事件函数和HTTP函数,且支持使用GPU计算资源。如何针对应用场景进行函数类型选型,详情请参见函数类型选型
- 除使用控制台外,函数工作流支持通过API的方式创建函数,详情请参见创建函数。
- 创建函数的常见问题排查方法请参见创建函数常见问题。