首页 > 解决方案 > AWS RDS 拒绝 Cron 作业数据库访问(Laravel 调度程序)

问题描述

我在 AWS 上的弹性豆茎上使用 Laravel 8 应用程序。

我正在使用以下指定链接的配置,但稍作修改以使 cron 在我的情况下工作(我认为答案已过时) 如何在 AWS Elastic Beanstalk 上设置和使用 Laravel 调度?

我的 cronjob.config 文件:

files:
"/etc/cron.d/schedule_run":
    mode: "000644"
    owner: root
    group: root
    content: |
        * * * * * root . /opt/elasticbeanstalk/deployment/env && /usr/bin/php 
/var/www/html/artisan schedule:run 1>> /dev/null 2>&1

commands:
    remove_old_cron:
        command: "rm -f /etc/cron.d/*.bak"

这运行良好,我可以测试它对应于我在 laravel 调度程序上选择的任何间隔。

但是,我遇到了另一个问题。似乎 RDS 拒绝连接到数据库。就上下文而言,这个完全相同的环境设置在任何时候都可以完美运行,除非它正在运行 cron 作业。我还使用 eb ssh 检查了 /opt/elasticbeanstalk/deployment/env 文件,它似乎匹配并且也是正确的。

我设置了一个日志来帮助缩小错误范围,我得到以下信息:

SQLSTATE[HY000] [1045] 用户 '[CORRECT DB USER NAME HERE]'@'[Some Random IP ADRESS]' 的访问被拒绝(使用密码:YES)(SQL:select * from userswhere email= name@example.com 限制 1 ) {"exception":"[object] (Illuminate\Database\QueryException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user '[CORRECT DB USER NAME HERE]'@'[Some Random IP ADRESS] ' (使用密码: YES) (SQL: select * from userswhere email= name@example.com limit 1) at /var/app/current/vendor/laravel/framework/src/Illuminate/Database/Connection.php:685)

我已尝试启用来自连接到 RDS 数据库的 VPC 中所有 IP 的所有入站和出站流量,但仍然无法正常工作。

我将不胜感激任何帮助!

标签: laravelamazon-web-servicescronamazon-elastic-beanstalkamazon-rds

解决方案


推荐阅读