应用型负载均衡ALB(Application Load Balancer)支持添加函数计算类型的后端服务器。本文指导您如何通过ALB和函数计算(Function Compute,简称FC)的配置,实现ALB转发请求至函数计算并调用函数,函数运行完成后,函数计算将运行结果作为响应返回给请求方。
背景信息
阿里云函数计算是事件驱动的全托管计算服务。使用函数计算,您无需购买和管理服务器等基础设施,便可运行函数代码。创建完函数后,您可以通过ALB服务器组和监听的配置,将函数作为ALB的后端服务器。当接收到HTTP访问请求时,ALB会将请求内容转发给函数计算并触发函数调用,函数运行完成后,函数计算将运行结果作为响应返回给请求方。关于函数计算的更多信息,请参见什么是函数计算。
使用限制
- ALB实例和函数计算服务属于同一个地域。
- 函数计算作为ALB后端服务器的使用限制:
- 仅支持创建通过HTTP请求触发的函数。
- 函数计算要求客户端在访问函数时,HTTP请求头中包含Date头域。Date头域表示消息发送的时间。
- ALB使用函数计算的使用限制:
- ALB中服务器组类型选择函数计算类型,且后端服务器组和监听仅支持HTTP协议。
- ALB仅支持添加一个函数计算作为后端服务器。
配置流程
步骤一:创建函数计算服务
- 登录函数计算控制台。
- 在左侧导航栏,单击服务及函数。
- 在顶部菜单栏,选择所属地域。本文选择华东1(杭州)。
- 在服务列表页面,单击创建服务。
- 在创建服务面板,配置以下参数信息,然后单击确定。
参数 |
说明 |
名称 |
输入函数计算服务名称。
长度为1~128个字符,只能包含字母、数字、下划线(_)和短划线(-),不能以数字、短划线(-)开头。
|
描述 |
输入函数计算服务描述。 |
日志功能 |
是否启用阿里云日志服务。本文选择启用。
说明 请确保您已开通日志服务。否则,无法启用日志功能。具体操作,请参见 开通日志服务。
|
链路追踪功能 |
是否启用阿里云链路追踪功能。本文选择禁用。
- 启用:启用后,您可以使用分布式追踪系统Jaeger上传链路信息,使您能够跟踪函数的执行,帮助您快速分析和诊断Serverless架构下的性能瓶颈。更多信息,请参见链路追踪简介。
- 禁用:不启用链路追踪功能。
|
步骤二:创建函数
- 在服务列表页面,在目标服务操作列单击函数管理。
- 在函数管理页面,单击创建函数。
- 在创建函数页面,按需选择创建函数的方式。
本文选择从零开始创建。
- 在基本设置和配置触发器区域,配置以下参数信息,然后单击创建。
参数 |
操作 |
基本设置 |
函数名称 |
填写自定义的函数名称。 |
运行环境 |
选择运行环境。本文选择Node.js 12。
关于函数计算支持的运行环境,请参见管理函数。
|
函数触发方式 |
选择函数触发方式。本文选择通过 HTTP 请求触发。
通过 HTTP 请求触发:通过发送HTTP请求触发函数执行,适用于快速构建Web服务等场景。
说明 负载均衡ALB仅支持通过HTTP请求触发函数。
|
实例类型 |
选择适合您的实例类型。本文选择弹性实例。
更多信息,请参见实例类型及使用模式。
|
内存规格 |
设置函数执行内存。 |
配置触发器 |
触发器类型 |
显示当前选择的触发器类型:HTTP触发。
触发器是触发函数执行的方式。
|
名称 |
输入触发器的名称。 |
是否需要认证 |
是否需要身份验证及是否支持匿名访问。本文修改为是。
- 是:需要身份验证,不支持匿名访问,ALB会对请求做身份验证,安全性较高。更多信息,请参见签名认证。
- 否:无需身份验证,支持匿名访问,安全性较低。支持任何用户发送HTTP请求调用函数。
|
请求方法 |
选择触发该HTTP触发器的方法。本文选择GET和POST。
|
- 单击函数代码页签,在代码编辑器中修改代码。
代码修改示例如下。
var params = {
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(杭州)。
- 在左侧导航栏,选择。
- 在服务器组页面,单击创建服务器组,完成以下配置,然后单击创建。

参数 |
说明 |
服务器组类型 |
选择服务器组类型。本文选择函数计算类型。
|
服务器组名称 |
输入服务器组名称。长度为2~128个字符,必须以大小写字母或中文开头,可包含数字、半角句号(.)、下划线(_)和短划线(-)。 |
选择后端协议 |
选择一种后端协议。本文选择HTTP。
|
选择资源组 |
选择归属的资源组。 |
配置健康检查 |
开启健康检查 |
开启或关闭健康检查。本文保持默认配置,即关闭健康检查。 |
高级配置 |
如果您需要开启健康检查,请按需修改高级配置中的参数。更多信息,请参见管理服务器组。
|
- 在服务器组页面,找到目标服务器组,然后在操作列单击编辑后端服务器。
- 在后端服务器页签,单击设置函数计算。
- 在添加后端服务器面板,选择以下任意一种方式完成参数配置,然后单击确定。
- 通过选择资源
参数 |
描述 |
配置方式 |
在下拉列表中选择通过选择资源。
|
服务 |
选择步骤一中创建的函数计算服务。
|
版本 |
选择LATEST。新创建的服务,默认只有一个LATEST版本。
|
函数 |
在下拉列表中选择您已创建的函数。如果没有可用的函数,请单击创建新函数,然后按照页面提示新建函数。具体操作,请参见管理函数。
|
备注 |
输入备注信息。 |
- 通过ARN配置
参数 |
描述 |
配置方式 |
在下拉列表中选择通过ARN配置。
|
ARN |
输入目标函数的ARN。
您可以在函数计算控制台的函数详情页面,复制函数ARN。具体操作, 请参见获取函数ARN。
|
备注 |
输入备注信息。 |
步骤四:创建ALB实例并配置监听
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏选择所属地域。本文选择华东1(杭州)。
- 在实例页面,单击创建应用型负载均衡。
- 在应用型负载均衡(按量付费)购买页面,完成参数配置。
此处仅列出和本文强相关的配置项。关于其余参数的配置,请参见
创建应用型负载均衡。
- 地域:本文选择华东1(杭州)。
- 实例网络类型:本文选择公网。
- 在实例页面,找到已创建的ALB实例,在目标实例操作列下单击创建监听,然后打开监听配置向导。
- 在配置监听配置向导,完成以下配置,然后单击下一步。
监听配置 |
说明 |
选择负载均衡协议 |
选择监听的协议类型。 本文选择HTTP。
|
监听端口 |
输入用来接收请求并向后端服务器进行请求转发的监听端口,端口范围为1~65535。本文输入80。
|
监听名称 |
自定义监听的名称。 |
高级配置 |
本文使用默认配置。 |
- 在选择服务器组配置向导,在选择服务器组的下拉框选择函数计算类型,并选择步骤三创建的后端服务器组,然后单击下一步。
- 在配置审核配置向导,确认配置信息,单击提交。
步骤五:连通性测试
完成上述操作后,ALB和函数计算已经建立了连接,您可以通过以下操作,测试ALB和函数计算的连通性。
- 打开命令行窗口,执行curl - v命令获取Date头域。
函数计算要求HTTP访问请求头中包含Date头域。
curl -v <ALB实例域名>

- 执行curl - H命令,尝试访问ALB实例的域名。
curl -H "Date头域" <ALB实例域名>
如下图所示,收到如下所示的回复报文,则表示
ALB可以将请求转发至函数计算并调用函数。
