【问题标题】:How can I add database proxy in lambda via cloudformation?如何通过 cloudformation 在 lambda 中添加数据库代理?
【发布时间】:2021-07-15 00:53:29
【问题描述】:
我正在使用 cloudformation 在 AWS 上配置 lambda 和 RDS。但我不知道如何在 lambda 上添加数据库代理。下面的截图来自 lambda 控制台:
cloudformation 支持添加这个吗?我在 lambda 和 db 代理模板中看不到它。
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-rds
amazon-rds-proxy
【解决方案1】:
我在 CloudFormation 模板中使用的确切配置是:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
Policies:
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- rds-db:connect
Resource:
- <rds_proxy_arn>/*
其中 <rds_proxy_arn> 是代理的 ARN,但服务是 rds-db 而不是 rds,资源类型是 dbuser 而不是 db-proxy。例如,如果您的代理的 ARN 是 arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef01,则整行应该是 arn:aws:rds-db:us-east-1:123456789012:db-proxy:prx-0123456789abcdef01/*。
部署后,我们可以看到控制台的数据库代理中添加了一个新的链接。
【解决方案4】:
在与 AWS 支持人员交谈后,AWS 控制台中在 lambda 上添加代理的屏幕截图仅授予 lambda 以下 IAM 权限。这意味着它是可选的。
Allow: rds-db:connect
Allow: rds-db:*