您可以通过编写云函数 SCF 来实现 Web 后端服务,然后使用负载均衡 CLB 绑定云函数 SCF 并对外提供服务。
背景信息
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。在您创建完云函数后,可以通过创建 CLB 触发器将云函数与事件进行关联。CLB 触发器会将请求内容以参数形式传递给云函数,并将云函数返回作为响应返回给请求方。
使用场景
通用的 HTTP/HTTPS 接入
适用于电商、社交、工具等 App 应用程序,以及个人博客、活动页面等 Web 应用程序等场景。方案流程如下所示:
1. App、浏览器、H5、小程序等发起 HTTP/HTTPS 请求,通过 CLB 访问 SCF。
2. 由 CLB 做证书卸载,SCF 仅需提供 HTTP 服务。
3. 请求转给 SCF 后,继续后续处理,例如写入云数据库或调用其他 API。

CVM/SCF 平滑切换
适用于 HTTP/HTTPS 服务从 CVM 迁移至 SCF 的场景,以及当 CVM(SCF)服务有问题时,快速迁移至 SCF(CVM)的故障切换场景。方案流程如下所示:
1. App、浏览器、H5、小程序等发起 HTTP/HTTPS 请求。
2. 通过 DNS 解析将请求解析到 CLB 的 VIP 上。
3. 一个 CLB 转发请求给 CVM,另一个 CLB 转发请求给 SCF。
4. 客户端无感知,即可完成后端服务在 CVM 和 SCF 之间的平滑切换。
CVM/SCF 业务分流
适用于秒杀、抢购等场景,使用 SCF 处理高弹性服务、使用 CVM 处理日常业务。
1. 通过 DNS 解析将域名 A 解析到其中一个 CLB 的 VIP 上,将域名 B 解析到另外一个 CLB 的VIP 上。
2. 其中一个 CLB 转发请求给 CVM,另外一个 CLB 转发请求给 SCF。
限制说明
仅广州、深圳金融、上海、上海金融、北京、南京、成都、中国香港、新加坡、东京、硅谷、圣保罗、雅加达地域支持绑定 SCF。
仅标准账户类型支持绑定 SCF,传统账户类型不支持。建议升级为标准账户类型,详情可参见 账户类型升级说明。
传统型负载均衡不支持绑定 SCF。
基础网络类型不支持绑定 SCF。
CLB 默认支持绑定同地域下的所有 SCF,可支持跨 VPC 绑定 SCF,不支持跨地域绑定。
目前仅 IPv4、IPv6 NAT64 版本的负载均衡支持绑定 SCF,IPv6 版本的暂不支持。
仅七层(HTTP、HTTPS)监听器支持绑定 SCF,四层(TCP、UDP、TCP SSL)监听器和七层 QUIC 监听器不支持。
CLB 绑定 SCF 仅支持绑定“Event 函数”类型的云函数。
同一个 CLB 规则下,只能绑定一个云函数,且不支持与其他类型的后端服务器混绑。
前提条件
1. 创建负载均衡实例
2. 配置 HTTP 监听器 或 配置 HTTPS 监听器
操作步骤

步骤一:创建云函数
1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。
2. 在函数服务页面上方选择期望创建函数的地域和命名空间,并单击新建,进入函数创建流程。如下图所示:


3. 在“新建函数”页面,您可以根据实际需求选择创建函数的方式。更多创建细节,请参见 创建函数。
模板创建:通过填写必选的函数名称,使用函数模板中的配置来完成函数的创建。
从头开始:通过填写必填的函数名称、运行环境来完成函数的创建。
使用容器镜像:基于容器镜像来创建函数。详情见 使用镜像部署函数。
4. 本文以从头开始为例,配置函数基础信息。
函数类型:支持选择事件函数和Web 函数。
事件函数:接收云 API、多种触发器的 JSON 格式事件触发函数执行。详情见 事件函数概述。
Web 函数:直接接收 HTTP 请求触发函数执行,适用于 Web 服务场景。详情见 Web 函数概述。
函数名称:函数名称默认填充,可根据需要自行修改。
地域:地域选择与 CLB 实例相同的地域。
运行环境:运行环境选择“Python3.6”,可根据需要自行修改。
时区:云函数内默认使用 UTC 时间,您可以通过配置环境变量 TZ 修改。在您选择时区后,将自动添加对应时区的 TZ 环境变量。
5. 在函数代码输入框中输入如下代码。
注意:
# -*- coding: utf8 -*-import jsondef main_handler(event, context):return {"isBase64Encoded": False,"statusCode": 200,"headers": {"Content-Type":"text/html"},"body": "<html><body><h1>Hello CLB</h1></body></html>"}
6. 在日志配置中,选择是否开启日志投递。如下图所示:

日志投递默认不开启。启用时,可将函数运行日志实时投递到指定位置。详情见 日志投递配置。

注意:
镜像部署函数和 Web 函数暂不支持日志格式选择。
7. 在高级配置中,您可以根据实际需求对函数进行环境配置、权限配置、层配置、网络配置等,详情见 函数相关配置。
8. 在触发器配置中,选择是否创建触发器。如果您选择“自定义创建”,详情见 触发器概述。
9. 单击完成。您可以在 函数服务 中查看已创建的函数。
步骤二:部署云函数
1. 在函数服务页面的列表中,单击刚才创建的函数名。
2. 在函数管理页面,单击函数代码页签,在页签底部单击部署。

步骤三:绑定云函数
1. 登录 负载均衡控制台,在左侧导航栏单击实例管理。
2. 在实例管理页面的负载均衡页签中,单击目标实例右侧操作列的配置监听器。
3. 在 HTTP/HTTPS 监听器列表中,选择需要绑定云函数 SCF 的监听器,分别单击目标监听器左侧的 + 和展开的域名左侧的 +,然后选中展开的 URL 路径,单击绑定。


4. 在弹出的绑定后端服务对话框中,目标类型选择云函数 SCF,选择命名空间、函数名和版本/别名,设置权重后,单击确认。


5. 返回监听器管理页签,在转发规则详情区域显示负载均衡已绑定的云函数,即已创建 CLB 触发器。


说明:
结果验证
1. 若使用公网 CLB 绑定云函数,且 IP 模式为固定 IP,可以通过 CLB 实例的 VIP 和端口访问云函数。若显示 Hello CLB,则说明云函数已成功部署。


2. 若使用公网 CLB 绑定云函数,且 IP 模式为动态 IP,可以通过 CLB 实例的域名和端口访问云函数。若显示 Hello CLB,则说明云函数已成功部署。


3. 若使用内网 CLB 绑定云函数,可以通过与 CLB 实例同一 VPC 的云服务器访问云函数。若显示 Hello CLB,则说明云函数已成功部署。

