【问题标题】:How can I configure database proxy on lambda in serverless.yml?如何在 serverless.yml 中的 lambda 上配置数据库代理?
【发布时间】:2021-07-04 02:03:16
【问题描述】:
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-rds
serverless-framework
【解决方案1】:
- 转到您的 RDS 服务器并单击代理
- 复制代理 ARN
- 编辑您的 serverless.yml 和
provider:
name: aws
iam:
role:
statements:
- Effect: "Allow"
Action:
- "rds-db:connect"
Resource: "arn:aws:rds-db:us-east-1:123123123:admin:blah-123abc123abc/*"
请注意,ARN 中的“rds”已更改为“rds-db”,ARN 中的“db-proxy”已更改为“admin”(数据库的管理员用户)。 sls deploy 并检查 lambda。您应该在数据库代理配置部分看到代理。
例如,我从 RDS 复制的代理 ARN 是
arn:aws:rds:us-east-1:123123123:db-proxy:blah-123abc123abc
我把它编辑成
arn:aws:rds-db:us-east-1:123123123:admin:blah-123abc123abc/*
另外,请确保您的 lambda 作为 RDS 代理位于 same Vpc 中,否则将无法连接。
我正在使用:
% sls --version
Framework Core: 2.50.0
Plugin: 5.4.3
SDK: 4.2.3
Components: 3.13.2
【讨论】:
-
在我的情况下,我需要将资源字符串中的dbuser 更改为admin,如arn:aws:rds-db:us-east-1:123123123:dbuser:blah-123abc123abc/* 所记录的here