微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Laravel 中连接到 AWS RDS 代理

如何解决在 Laravel 中连接到 AWS RDS 代理

我使用 Laravel Vapor 将 Laravel 应用程序部署到 AWS Lambda。我想使用 RDS Proxy 而不是直接连接到 RDS 实例。

Laravel Vapor 允许您从仪表板和 CLI 管理数据库和代理。但是,我没有使用 Vapor 来管理我的数据库。我正在通过云形成模板管理它们。

我发现没有任何文档可以将非托管 RDS 代理与 Laravel Vapor 或 Laravel 集成。

我尝试了几件事,但总是出现以下错误

Illuminate\Database\QueryException sqlSTATE[HY000] [1045] Access denied for user 'gxadmin'@'%' (using password: NO)

以下是我尝试过的事情。

  1. 我已将环境中的直接 RDS 端点替换为代理端点。
  2. 我已授予 Lambda 角色必要的权限。以下是政策:
{
    "Version": "2012-10-17","Statement": [
        {
            "Action": [
                "cloudwatch:GetMetricStatistics","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","logs:CreateLogGroup","logs:CreateLogStream","logs:FilterLogEvents","logs:PutLogEvents","kms:Decrypt","secretsmanager:GetResourcePolicy","secretsmanager:GetSecretValue","secretsmanager:DescribeSecret","secretsmanager:ListSecretVersionIds","secretsmanager:GetRandomPassword","secretsmanager:ListSecrets","ssm:GetParameters","ssm:GetParameter","lambda:invokeFunction","s3:*","ses:*","sqs:*","dynamodb:*","route53domains:*","es:*","rds-db:connect"
            ],"Effect": "Allow","Resource": "*"
        }
    ]
}
  1. 我尝试在 Vapor YAML 文件添加删除“database-proxy: true”,但错误仍然相同。

我找到了一个 PHP 示例 here 来连接到 RDS 代理。

Laravel Vapor 或 Laravel 一般支持 RDS Proxy 吗?或者我是否必须使用服务容器覆盖数据库连接逻辑?

请指导。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。