4

我正在使用 cloudformation 在 AWS 上配置 lambda 和 RDS。但我不知道如何在 lambda 上添加数据库代理。下面的屏幕截图来自 lambda 控制台:

在此处输入图像描述

cloudformation 支持添加这个吗?我在 lambda 和 db 代理模板中看不到它。

4

4 回答 4

1

我在 CloudFormation 模板中使用的确切配置是:

MyLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Policies:
        - Version: '2012-10-17' 
          Statement:
            - Effect: Allow
              Action:
                - rds-db:connect
              Resource:
                - <rds_proxy_arn>/*

where<rds_proxy_arn>是代理的 ARN,但 service 是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/*.

部署后,我们可以看到控制台的数据库代理中添加了一个新链接。

于 2021-07-14T16:53:29.213 回答
0

根据以下 Github 问题,似乎不需要将 lambda 连接到 RDS 代理。https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/750

您只需向 lambda 提供新的连接详细信息(例如,使用 env 变量使其工作)

于 2021-03-03T09:04:12.933 回答
0

根据 CloudFormation/Lambda文档,没有为 Lambda 指定数据库代理的选项。

在低级 HTTP API 中创建 Lambda 函数时,我也没有看到添加 RDS 代理的选项。不知道为什么。

于 2020-10-28T08:15:05.487 回答
0

与 AWS 支持人员交谈后,AWS 控制台中在 lambda 上添加代理的屏幕截图仅授予 lambda 以下 IAM 权限。这意味着它是可选的。

Allow: rds-db:connect
Allow: rds-db:*
于 2021-03-03T10:30:15.873 回答