【问题标题】: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>/*

其中 &lt;rds_proxy_arn&gt; 是代理的 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/*

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

【讨论】:

    【解决方案2】:

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

    在低级 HTTP API 中,creating a Lambda function 也没有添加 RDS 代理的选项。不知道为什么。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        Allow: rds-db:connect
        Allow: rds-db:*
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-29
          • 2018-10-03
          相关资源
          最近更新 更多