【问题标题】:How can I configure database proxy on lambda in serverless.yml?如何在 serverless.yml 中的 lambda 上配置数据库代理?
【发布时间】:2021-07-04 02:03:16
【问题描述】:

我正在使用 serverless 框架在 AWS 上配置基础设施。我需要在我的 lambda 上添加 database proxy 但我找不到如何配置它。我已经阅读了文档https://www.serverless.com/framework/docs/providers/aws/guide/functions/,但它没有提到任何与数据库代理相关的内容。

下面的屏幕截图是 aws 控制台中 lambda 的底部。如何通过serverless.yml添加代理?

【问题讨论】:

  • 可能需要使用Resources部分自定义定义。

标签: amazon-web-services aws-lambda amazon-rds serverless-framework


【解决方案1】:
  1. 转到您的 RDS 服务器并单击代理
  2. 复制代理 ARN
  3. 编辑您的 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
猜你喜欢
  • 1970-01-01
  • 2020-05-07
  • 2018-11-11
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 2018-02-23
  • 2020-09-11
  • 1970-01-01
相关资源
最近更新 更多