弹性豆茎中的克隆环境

时间:2020-12-31 22:54:18

标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk amazon-rds

我想将我的 Rails EB Linux 从 1.11.8 更新到 2.12.2,所以我克隆了环境并提交给它,但我收到了这个错误:

PG::ConnectionBad (could not connect to server: Connection timed out
    Is the server running on host "example.ccexample.us-east-1.rds.amazonaws.com" (111.11.21.22) and accepting
    TCP/IP connections on port 5432?

另一个错误——可能是同样的问题?:

/opt/elastticbeanstalk/hooks/appdeploy/pre/12_db_migration.sh failed.

我的环境变量都是正确的,所以数据库不应该只是简单地连接吗?

这是错误日志:

    [2020-12-31T22:05:28.834Z] INFO  [5012]  - [Application update app-example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Starting activity...
[2020-12-31T22:07:45.564Z] INFO  [5012]  - [Application update example/AppDeployStage0/AppDeployPreHook/12_db_migration.sh] : Activity execution failed, because: ++ /opt/elasticbeanstalk/bin/get-config container -k script_dir
  + EB_SCRIPT_DIR=/opt/elasticbeanstalk/support/scripts
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
  + EB_APP_STAGING_DIR=/var/app/ondeck
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_user
  + EB_APP_USER=webapp
  ++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
  + EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
  + . /opt/elasticbeanstalk/support/envvars-wrapper.sh
  +++ /opt/elasticbeanstalk/bin/get-config container -k support_dir
  ++ EB_SUPPORT_DIR=/opt/elasticbeanstalk/support
  ++ set +x
  + RAKE_TASK=db:migrate
  + . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh
  ++ . /usr/local/share/chruby/chruby.sh
  +++ CHRUBY_VERSION=0.3.9
  +++ RUBIES=()
  +++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
  +++ [[ -d /opt/rubies ]]
  ++++ ls -A /opt/rubies
  +++ [[ -n ruby-2.4.10
  ruby-2.5.8
  ruby-2.6.6
  ruby-current ]]
  +++ RUBIES+=("$dir"/*)
  +++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
  +++ [[ -d /.rubies ]]
  +++ unset dir
  +++ cat /etc/elasticbeanstalk/.ruby_version
  ++ chruby 2.5.8
  ++ case "$1" in
  ++ local dir match
  ++ for dir in '"${RUBIES[@]}"'
  ++ dir=/opt/rubies/ruby-2.4.10
  ++ case "${dir##*/}" in
  ++ for dir in '"${RUBIES[@]}"'
  ++ dir=/opt/rubies/ruby-2.5.8
  ++ case "${dir##*/}" in
  ++ match=/opt/rubies/ruby-2.5.8
  ++ for dir in '"${RUBIES[@]}"'
  ++ dir=/opt/rubies/ruby-2.6.6
  ++ case "${dir##*/}" in
  ++ for dir in '"${RUBIES[@]}"'
  ++ dir=/opt/rubies/ruby-current
  ++ case "${dir##*/}" in
  ++ [[ -z /opt/rubies/ruby-2.5.8 ]]
  ++ shift
  ++ chruby_use /opt/rubies/ruby-2.5.8 ''
  ++ [[ ! -x /opt/rubies/ruby-2.5.8/bin/ruby ]]
  ++ [[ -n '' ]]
  ++ export RUBY_ROOT=/opt/rubies/ruby-2.5.8
  ++ RUBY_ROOT=/opt/rubies/ruby-2.5.8
  ++ export RUBYOPT=
  ++ RUBYOPT=
  ++ export PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
  ++ PATH=/opt/rubies/ruby-2.5.8/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
  +++ /opt/rubies/ruby-2.5.8/bin/ruby -
  ++ eval 'export RUBY_ENGINE=ruby;
  export RUBY_VERSION=2.5.8;
  export GEM_ROOT="/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0";'
  +++ export RUBY_ENGINE=ruby
  +++ RUBY_ENGINE=ruby
  +++ export RUBY_VERSION=2.5.8
  +++ RUBY_VERSION=2.5.8
  +++ export GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
  +++ GEM_ROOT=/opt/rubies/ruby-2.5.8/lib/ruby/gems/2.5.0
  ++ ((  0 != 0  ))
  + cd /var/app/ondeck
  + su -s /bin/bash -c 'bundle exec /opt/elasticbeanstalk/support/scripts/check-for-rake-task.rb db:migrate' webapp

我还用新的环境名称更新了 config.yml:

分支默认值: 掌握: 环境:新名称 环境默认值: 新名字: 分支:空 存储库:空 RevoltVendor-env: 分支:空 存储库:空 全球的: application_name:应用名称 default_ec2_keyname:空 default_platform:在 64 位 Amazon Linux 上运行带有 Ruby 2.5 的 Puma 默认区域:us-east-1 include_git_submodules: 真 实例配置文件:空 平台名称:空 平台版本:空 简介:eb-cli sc: git 工作空间类型:应用程序

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

基于评论。

该问题是由 RDS 中错误的安全组 (SG) 入站规则引起的。 EB 克隆操作创建了新的 SG,这在 RDS 的 SG 中没有体现。

解决方案是更新 RDS 的 SG 并添加与克隆的 EB 环境关联的 SG。