amazon-web-services - 如何在 serverless.yml 中的 lambda 上配置数据库代理?

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

我正在使用 serverless在 AWS 上配置基础设施的框架。我需要添加 database proxy在我的 lambda 上,但我找不到如何配置它。我已阅读文档 https://www.serverless.com/framework/docs/providers/aws/guide/functions/但它没有提到与数据库代理相关的任何内容。
下面的屏幕截图是 aws 控制台中 lambda 的底部。如何通过 serverless.yml 添加代理?
enter image description here

最佳答案

  • 转到您的 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 复制的 Proxy ARN 是arn:aws:rds:us-east-1:123123123:db-proxy:blah-123abc123abc我把它编辑成arn:aws:rds-db:us-east-1:123123123:admin:blah-123abc123abc/*另外,请确保您的 lambda 在 same Vpc 中作为 RDS 代理,否则将无法连接。
    我在用:
    % sls --version
    Framework Core: 2.50.0
    Plugin: 5.4.3
    SDK: 4.2.3
    Components: 3.13.2
    

    关于amazon-web-services - 如何在 serverless.yml 中的 lambda 上配置数据库代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64444314/

    相关文章:

    amazon-web-services - Terraform AWS EKS 安全组问题

    mysql - REST API 的服务器与无服务器

    javascript - AWS Cognito - 如何交换访问 token 的授权代码?

    javascript - 删除文件路径和文件名,使用 Node 将文件名保留在 AWS Lambda 中

    amazon-web-services - AWS Transfer 系列中从不要求 AWS Lambda 进行身份验证

    amazon-web-services - 通过 CloudFormation 堆栈部署初始化和填充无服务器 PostgreSQL RDS 实例的最佳实践

    amazon-web-services - aws lambda - 如果手动创建 s3 存储桶,如何使用 cloudformation 添加 s3 触发器

    web-applications - 带有 session 和数据库的 AWS lambda 和 Web 应用程序

    mysql - 管理员如何向用户添加 RDS MySQL 数据库实例的只读权限?

    mysql - AWS RDS 实例的可用时间点恢复点