DANGER
本页由 AI 工具参考代码编写,尚未经过人工审核,内容仅供参考。如果无法解决问题或需要协助部署,可邮箱联系:kuohu233@qq.com
部署后端到阿里云函数计算(生产级)
概述
将 Go 后端部署到阿里云函数计算(FC),搭配 MySQL Serverless 实现高可用、弹性伸缩的生产级架构。
💡 本方案以阿里云函数计算为例,你也可以部署在腾讯云函数、AWS Lambda 等任何你熟悉的 Serverless 平台。
与极低成本方案的区别
你需要准备
- 阿里云账号(已实名认证)
- 已创建 MySQL Serverless 实例(参见 配置 MySQL Serverless 数据库)
- 已开通函数计算服务
- 从 GitHub Release 下载对应 Linux 版本的二进制文件(
AstraScheduleServerGo-linux-amd64)
步骤
1. 开通函数计算服务
- 登录 阿里云函数计算控制台
- 首次使用点击「立即开通」
- 选择「按量付费」
2. 创建函数
- 点击「创建函数」
- 选择「使用自定义运行时」
- 填写基本信息:
3. 上传代码
- 在「代码」区域,选择「上传 ZIP 包」
- 将下载的
AstraScheduleServerGo-linux-amd64重命名为astrago - 创建
config.toml配置文件(内容见下方) - 将两个文件打包为 ZIP 并上传
4. 配置文件
⚠️ 数据库连接信息请从 MySQL 控制台获取,参见 配置 MySQL Serverless 数据库。密码务必使用强密码。
5. 配置启动命令
在函数配置中设置:
6. 配置 HTTP 触发器
- 在函数详情页,点击「触发器管理」
- 创建「HTTP 触发器」
- 认证方式选择「无需认证」
- 请求方法选择「ANY」
创建后记录生成的公网访问地址(类似 https://xxx.cn-hangzhou.fc.aliyuncs.com)。
7. 绑定自定义域名
- 在函数计算控制台选择「域名管理」
- 添加自定义域名,如
api.your-domain.com - 记录给出的 CNAME 值
- 到 ESA(或你的 DNS 服务商)添加 DNS 记录:
8. 配置 VPC 网络(重要)
MySQL Serverless 实例默认在 VPC 内网中。为了让函数计算能访问数据库,需要配置 VPC 网络:
- 进入函数详情页,点击「配置」→「网络」
- 选择 MySQL 实例所在的 VPC 和交换机
- 保存配置
💡 如果选择 MySQL 的「公网访问」,则无需配置 VPC,但安全性较低,不推荐生产环境使用。
9. 配置预留实例(冷启动优化)
Serverless 函数在无请求时会回收实例,下次请求时产生冷启动延迟。为生产环境配置预留实例:
- 进入函数详情页,点击「弹性管理」
- 创建「预留实例」配置
- 建议至少保留 1 个实例(按量付费,成本可控)
💡 预留实例可以消除冷启动带来的 1-3 秒延迟,保证 API 响应始终在毫秒级。
10. 验证
部署完成后,测试后端是否正常响应:
应返回 {"message": "Hello World"}。
关于数据库
生产级方案使用阿里云 MySQL Serverless,具备以下优势:
- 弹性伸缩:根据负载自动调整计算资源,闲时几乎不消耗资源
- 自动备份:每日自动备份,可恢复到任意时间点
- 高可用:主备架构,故障自动切换
- 数据持久化:数据不会因函数实例回收而丢失