0

AWSでElasticBeanstalkを初めて使用しようとしていて、AWSコンソールに表示するように私のアプリケーション環境を管理しましたが、配備は失敗します。私のアプリはPostgres RDSインスタンスに接続されています。AWSへのRailsの展開ElasticBeanstalk/RDSが失敗する

ログには、アプリケーションのhstore要件の結果として展開が失敗していることが示されます。この拡張機能が存在しない場合はインストールしています。

# .ebextensions/packages.config 
packages: 
    yum: 
    postgresql93-devel: [] 

提示した最初のエラー:

# lib/tasks/db_enhancements.rake 

####### Important information #################### 
# This file is used to setup a shared extensions # 
# within a dedicated schema. This gives us the # 
# advantage of only needing to enable extensions # 
# in one place.         # 
#            # 
# This task should be run AFTER db:create but # 
# BEFORE db:migrate.        # 
################################################## 


namespace :db do 
    desc 'Also create shared_extensions Schema' 
    task :extensions => :environment do 
    # Create Schema 
    ActiveRecord::Base.connection.execute 'CREATE SCHEMA IF NOT EXISTS shared_extensions;' 
    # Enable triagram 
    ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS pg_trgm SCHEMA shared_extensions;' 
    # Enable Hstore 
    ActiveRecord::Base.connection.execute 'CREATE EXTENSION IF NOT EXISTS HSTORE SCHEMA shared_extensions;' 
    end 
end 

Rake::Task["db:create"].enhance do 
    Rake::Task["db:extensions"].invoke 
end 

Rake::Task["db:test:purge"].enhance do 
    Rake::Task["db:extensions"].invoke 
end 

私も私のebextensionsの設定でPostgresの拡張が含まれていることを確認してください:私のアプリケーションで

、私はrakeタスクとしてこのスクリプトを設定していますデプロイメントログには次のように表示されます:

PG::UndefinedObject: ERROR: type "hstore" does not exist 

私は間違ってやっていますか?

* PS。に行く今すぐあなたのSecurityGroup

aws rds describe-db-instances --db-instance-identifier <DBInstanceIdentifier> 
sg-xxxxxxxxx 

編集
をごVpcSecurityGroupIdを特定

:私は、私は、この同様の問題があったEB CLI

答えて

1

を使用しています、と私は、次の手順で解決することができますAWS Console/VCP/セキュリティグループとVpcSecurityGroupIdで検索受信の規則で はタイプで他のルールを追加します。すべてのTCP、プロトコル:あなたのエンドポイントを使用して
0.0.0.0/0
RDSコンソールに接続

:TCP、ポート範囲:ALL、およびソースこの

psql --host=xxxxxxxxxx.xxxxxxxxxx.us-west-2.rds.amazonaws.com --port=5432 --username=dbxxxxx --dbname=ebxxx 

ライトユーザーdbxxxxxのパスワード、および

ebdb=> CREATE EXTENSION hstore; 

そして、これがすべてです。 :)

関連する問題