如何配置我的 Lambda 函数以使用 Amazon RDS 代理连接到 Amazon RDS 数据库?
我想将我的 AWS Lambda 函数配置为使用 Amazon RDS 代理连接到 Amazon Relational Database Service (Amazon RDS) 数据库。
简短描述
您可以为您的 Lambda 函数创建 Amazon RDS 代理数据库。数据库代理管理数据库连接池,并中继来自函数的查询。这让函数达到高并发级别,而不会耗尽数据库连接。
有关更多信息,请参阅配置 Lambda 函数的数据库访问权限。
解决方法
按照以下说明使用 Lambda 函数配置 Amazon RDS 代理。
注意: Amazon RDS 代理必须与 Amazon RDS 数据库位于同一个 Amazon Virtual Private Cloud (Amazon VPC) 中。使用 Amazon VPC 配置 Lambda 函数来访问 Amazon RDS 代理。
步骤 1:在 AWS Secrets Manager 中,创建数据库凭证
1. 打开 Secrets Manager 控制台,然后选择 Store a new secret(存储新密钥)。
2. 在密钥类型中,选择 RDS 数据库凭证。
3. 输入您的 Amazon RDS 数据库实例的用户名和密码。
4. 对于加密密钥,请选择 Secrets Manager 用来加密密钥值的 AWS Key Management Service (AWS KMS) 密钥**。**
5. 对于数据库,选择您的数据库,然后选择下一步。
6. 对于 Secret name(密钥名称),输入名称,选择 Next(下一个),接着再次选择 Next(下一个),然后选择 Store(存储)。
7. 在 Secrets(密钥)中,选择您创建的 Secrets Manager 密钥。
8. 在 Secret ARN(密钥 ARN)中,复制 ARN 以在其他步骤中使用。
有关更多信息,请参阅创建 AWS Secrets Manager 数据库密钥。
步骤 2:为 Amazon RDS 代理创建 AWS Identity and Access Management (IAM) 策略和角色
创建一个有权限使用这个密钥的 IAM 角色,然后创建一个信任策略,允许 Amazon RDS 承担这个角色。
IAM Secrets Manager 策略示例
注意:将 Secret_ARN 替换为您之前复制的 Secrets Manager ARN。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "[Secret_ARN]" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*" } ] }
示例 IAM RDS 信任策略
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
步骤 3:创建 RDS 代理并将其连接到 Lambda 函数
1. 打开 Lambda 控制台中的函数页面。
2. 在函数中,选择您的 Lambda 函数。
3. 选择 Configuration(配置),然后选择 Add database proxies(添加数据库代理)。
4. 输入以下变量:
Proxy identifier(代理标识符):代理的名称。
RDS DB instance(RDS 数据库实例):支持的 MySQL 或 PostgreSQL 数据库实例或集群。
Secret(密钥):您所创建的 Secrets Manager。
IAM role(IAM 角色):您已创建的 IAM 角色。
Authentication(身份验证):选择 Password(密码)以连接数据库凭证,或选择 Execution role(执行角色)以使用函数的 IAM 证书进行身份验证。
5. 选择 Add(添加)。
代理创建需要几分钟才能完成。当代理可用时,将您的函数配置为连接到代理端点而不是数据库端点。有关更多信息,请参阅创建数据库代理(控制台)。
步骤 4:(可选)确认您的 Amazon RDS 代理正在使用 IAM 身份验证
仅当您使用 Lambda 执行角色向 Amazon RDS 代理进行身份验证时,才需要执行以下步骤。
1. 打开 Amazon RDS 控制台。
2. 在导航窗格中,选择 Proxies(代理),然后选择您的代理。
3. 选择操作,然后选择修改。
4. 在连接模块中,确保将 IAM 身份验证设置为必需。
注意: 如果您遇到连接问题,请参阅 为什么我无法使用 RDS 代理连接到我的 Amazon RDS 数据库或 Amazon Aurora 数据库实例? 有关更多信息,请参阅读将 Amazon RDS 代理与 AWS Lambda 配合使用。
相关信息

相关内容
- 已提问 7 个月前lg...
- 已提问 4 个月前lg...
- 已提问 1 个月前lg...
- 已提问 1 个月前lg...
- 已提问 3 个月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 个月前