AWS CodeBuild 无法与 RDS 实例交互

AWS CodeBuild fails to interact with RDS instance

我在 AWS 中进行了最基本的设置:

都在默认 VPC 中。

我的应用程序是用 Laravel 5.5 编写的,buildspec.yml 在某些时候运行 ./artisan migrate --force 并且 CodeBuild 输出以下错误:

[Container] 2018/03/10 19:41:36 Running command php artisan migrate --force

[Illuminate\Database\QueryException] 
SQLSTATE[08006] [7] timeout expired (SQL: select * from information_schema. 
tables where table_schema = public and table_name = migrations)     

[Doctrine\DBAL\Driver\PDOException] 
SQLSTATE[08006] [7] timeout expired    

[PDOException] 
SQLSTATE[08006] [7] timeout expired 

我应该从哪里开始查找错误?

您需要确保 RDS 安全组允许来自 Code Build 的入站流量。

  1. 转到https://ip-ranges.amazonaws.com/ip-ranges.json
  2. 搜索 CODEBUILD 并选择您所在的地区。
  3. 将 IP 添加到 RDS 安全组中的入站规则。

为代码构建创建一个安全组并将其作为 DBSecurity 组中的源进行引用。