首页
/ SST框架中AWS MySQL数据库的配置与使用指南

SST框架中AWS MySQL数据库的配置与使用指南

2025-07-05 06:08:52作者:董灵辛Dennis

概述

在现代云原生应用开发中,数据库是核心组件之一。SST框架提供了简便的方式来部署和管理AWS上的MySQL数据库实例。本文将详细介绍如何在SST项目中配置AWS RDS MySQL数据库,并将其与Lambda函数集成。

基础配置

1. VPC配置

在部署MySQL数据库前,首先需要配置VPC网络环境:

const vpc = new sst.aws.Vpc("MyVpc", { 
  nat: "ec2", 
  bastion: true 
});
  • nat: "ec2" 表示使用EC2实例作为NAT网关
  • bastion: true 启用堡垒机功能,允许通过SSH隧道从本地连接数据库

2. MySQL数据库部署

const mysql = new sst.aws.Mysql("MyDatabase", {
  vpc,
});

这行代码会在指定的VPC中创建一个RDS MySQL实例。SST会自动处理以下细节:

  • 数据库实例类型选择
  • 存储配置
  • 安全组设置
  • 备份策略

与Lambda函数集成

1. 函数配置

const app = new sst.aws.Function("MyApp", {
  handler: "index.handler",
  link: [mysql],
  url: true,
  vpc,
});

关键参数说明:

  • link: [mysql] 将数据库连接信息注入到函数环境变量中
  • url: true 为函数启用HTTP访问端点
  • vpc 确保函数与数据库在同一VPC中

2. 函数代码中使用数据库

在Lambda函数中,可以使用以下方式连接MySQL:

const connection = await mysql.createConnection({
  database: Resource.MyDatabase.database,
  host: Resource.MyDatabase.host,
  port: Resource.MyDatabase.port,
  user: Resource.MyDatabase.username,
  password: Resource.MyDatabase.password,
});

SST会自动将数据库连接信息注入到Resource对象中,开发者无需手动管理这些敏感信息。

本地开发与调试

1. 安装SSH隧道工具

sudo npx sst tunnel install

此命令需要sudo权限,因为它会在本地创建网络接口。安装后即可通过SSH隧道安全地连接到VPC中的数据库。

2. 启动开发环境

npx sst dev

启动后,开发者可以通过本地工具(如MySQL Workbench)连接到远程数据库进行开发和调试。

生产环境注意事项

sst.config.ts中,生产环境配置了数据保留策略:

removal: input?.stage === "production" ? "retain" : "remove"
  • 生产环境(production阶段)数据库会被保留,防止误删除
  • 非生产环境在删除堆栈时会自动清理资源

最佳实践

  1. 安全连接:始终通过VPC和SSH隧道访问数据库,避免直接暴露到公网
  2. 环境隔离:为不同环境(开发、测试、生产)创建独立的数据库实例
  3. 连接池管理:在Lambda函数中实现适当的连接池策略,避免频繁创建/关闭连接
  4. 监控配置:利用AWS CloudWatch监控数据库性能指标

总结

通过SST框架,开发者可以轻松地在AWS上部署和管理MySQL数据库,并与无服务器函数无缝集成。这种模式既保持了开发效率,又确保了生产环境的安全性和可靠性。本文介绍的方法适用于大多数需要关系型数据库的云原生应用场景。