如果您使用阿里云函数计算(Function Compute,简称FC),并需要将函数计算作为ALB后端服务来处理请求,您可以为ALB实例添加函数计算类型的服务器组。通过ALB和函数计算的配置,实现ALB转发请求至函数计算并调用函数,函数在运行完成后,函数计算将运行结果作为响应返回给请求方。
当前ALB函数计算类型服务器组仅支持函数计算2.0版本,暂不支持函数计算3.0版本。
本文所有涉及函数计算的描述,均指代函数计算2.0版本。
背景信息
阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。函数计算是Serverless架构的一种形态,面向函数编程,基于事件驱动提供阿里云云服务之间端到端的解决方案。借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。
创建完函数后,您可以通过ALB服务器组和监听的配置,将函数作为ALB的后端服务器。当接收到访问请求时,ALB会将请求内容转发给函数计算并触发函数调用,函数运行完成后,函数计算将运行结果作为响应返回给请求方。
使用函数计算服务前需要先开通函数计算服务。
使用限制
ALB实例和函数属于同一个地域。
函数计算作为ALB后端服务器时的使用限制:
仅支持创建处理HTTP请求的函数。
函数计算要求客户端在访问函数时,HTTP请求头中包含Date头域。Date头域表示消息发送的时间。
ALB使用函数计算时的使用限制:一个ALB函数计算类型服务器组仅支持添加一个函数作为后端服务器。
步骤一:创建函数计算服务
登录函数计算控制台。
重要如果您的控制台当前处于函数计算3.0版本页面,您可单击右上角返回函数计算2.0,返回函数计算2.0页面进行操作。
在左侧导航栏,单击服务及函数。
在顶部菜单栏,选择所属地域。本文选择华东1(杭州)。
在服务列表页面,单击创建服务。
在创建服务面板,部分配置可参考以下信息,其余参数可保持默认,然后单击确定。
参数
说明
名称
输入函数计算服务名称。
长度为1~128个字符,只能包含字母、数字、下划线(_)和中划线(-),不能以数字、中划线(-)开头。
描述
输入函数计算服务描述。
日志功能
是否启用阿里云日志服务。本文选择启用。
启用:启用后,函数计算会自动为您在日志服务创建对应的Project(日志项目)和Logstore(日志仓库),并自动把函数日志投递到相应的Logstore。
此时,函数计算为您的服务授予基于最小权限原则创建的
AliyunFCDefaultRole
,以访问日志服务。关于服务角色的更多信息,请参见授予函数计算访问其他云服务的权限。禁用:函数的执行日志将无法通过日志服务存储和查询。
说明请确保您已开通日志服务。否则,无法启用日志功能。
步骤二:创建函数
在服务列表页面,在目标服务操作列单击函数管理。
在函数管理页面,单击创建函数。
在创建函数页面,按需选择创建函数的方式。
本文选择使用内置运行时创建。
在基本设置、函数代码和触发器配置区域,配置以下参数信息,然后单击创建。
此处仅列出和本文强相关的配置项,其余未列出的参数保持默认值。
参数
操作
基本设置
函数名称
填写自定义的函数名称。
请求处理程序类型
选择请求处理程序类型。本文选择处理 HTTP 请求。
请求处理程序类型:用于处理HTTP请求或Websocket请求的函数。
说明负载均衡ALB仅支持通过HTTP请求触发函数。
函数代码
运行环境
选择运行环境。本文选择Node.js 14。
关于函数计算支持的运行环境,请参见管理函数。
代码上传方式
选择上传函数代码到函数计算的方式。
本文选择使用示例代码。
触发器配置
触发器类型
显示当前选择的触发器类型:HTTP触发器。
触发器是触发函数执行的方式。
名称
输入触发器的名称。
请求方法
选择触发该HTTP触发器的方法。本文选择GET和POST。
认证方式
本文选择签名认证。更多信息,请参见签名认证。
在函数代码页签,在代码编辑器中修改代码。
代码修改示例如下。
varparams={ path : req.path, queries : req.queries, headers : req.headers, method : req.method, requestURI : req.url, clientIP : req.clientIP, log : ("Hello World.This is FC!"), }
在函数代码页签,在左上角单击部署代码,然后单击测试函数。
执行完成后,您可以在返回结果区域查看函数运行结果。更多操作,请参见快速创建函数。
步骤三:创建函数计算类型的服务器组
- 登录应用型负载均衡ALB控制台。
在顶部菜单栏选择所属地域。本文选择华东1(杭州)。
在左侧导航栏,选择 。
在服务器组页面,单击创建服务器组,完成以下配置,然后单击创建。
参数
说明
服务器组类型
选择服务器组类型。本文选择函数计算类型。
服务器组名称
输入服务器组名称。
配置健康检查
健康检查
开启或关闭健康检查。本文保持默认配置,即关闭健康检查。
在服务器组页面,找到目标服务器组,然后在操作列单击编辑后端服务器。
在后端服务器页签,单击设置函数计算。
在添加后端服务器面板,选择以下任意一种方式完成参数配置,然后单击确定。
步骤四:创建ALB实例并配置监听
- 登录应用型负载均衡ALB控制台。
在顶部菜单栏选择所属地域。本文选择华东1(杭州)。
在实例页面,单击创建应用型负载均衡。
在应用型负载均衡(按量付费)购买页面,完成参数配置。
此处仅列出和本文强相关的配置项。关于其余参数的配置,请参见创建应用型负载均衡。
地域:本文选择华东1(杭州)。
实例网络类型:本文选择公网。
在实例页面,找到已创建的ALB实例,在目标实例操作列下单击创建监听,然后打开监听配置向导。
在配置监听配置向导,完成以下配置,然后单击下一步。
监听配置
说明
选择监听协议
选择监听的协议类型。 本文选择HTTP。
监听端口
输入用来接收请求并向后端服务器进行请求转发的监听端口,端口范围为1~65535。本文输入80。
监听名称
自定义监听的名称。
高级配置
本文使用默认配置。
在选择服务器组配置向导,在选择服务器组的下拉框选择函数计算类型,并选择步骤三创建的后端服务器组,然后单击下一步。
在配置审核配置向导,确认配置信息,单击提交。
步骤五:设置域名解析
实际业务场景中,建议您使用自有域名,通过CNAME解析的方式将自有域名指向ALB实例域名。
在左侧导航栏,选择
在实例页面,复制已创建的ALB实例的DNS名称。
执行以下步骤添加CNAME解析记录。
说明对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。具体操作,请参见域名管理。如果您是阿里云注册的域名,请直接执行以下步骤。
登录域名解析控制台。
在权威域名解析页面,找到目标域名,在操作列单击解析设置。
在解析设置页面,单击添加记录。
在添加记录面板,配置以下信息完成CNAME解析配置,然后单击确定。
配置
说明
记录类型
在下拉列表中选择CNAME。
主机记录
您的域名的前缀。本文输入@。
说明创建域名为根域名时,主机记录为
@
。解析请求来源
选择默认。
记录值
输入域名对应的CNAME地址,即您复制的ALB实例的DNS名称。
TTL
全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。
步骤六:连通性测试
完成上述操作后,ALB和函数计算已经建立了连接,您可以通过以下操作,测试ALB和函数计算的连通性。
打开命令行窗口,执行
curl -v <域名>
命令获取Date头域。函数计算要求HTTP访问请求头中包含Date头域。
执行
curl -H "Date头域" <域名>
命令。如下图所示,收到如下所示的回复报文,则表示ALB可以将请求转发至函数计算并调用函数。
相关文档
函数计算2.0相关: