実現したいこと
Docker上でDynamoDBを使った開発を進めたい。
Dynamo localでコンテナを立てて、dynamoidというgemを使ってrails上で通信ができるように試みています。
発生している問題・エラーメッセージ
rails cでレコード作成をしたところ下記エラーが出ます。
[1] pry(Rails::Console)> User.create(name: "Taro", email:"example@gmail.com") [Aws::DynamoDB::Client 0 0.021913 0 retries] list_tables(exclusive_start_table_name:nil) Errno::EADDRNOTAVAIL Failed to open TCP connection to localhost:8000 (Cannot assign requested address - connect(2) for [::1]:8000)
該当のソースコード
docker
1 dynamodb-local: 2 image: amazon/dynamodb-local:latest 3 container_name: dynamodb_local 4 user: root 5 command: -jar DynamoDBLocal.jar -sharedDb -dbPath /data 6 volumes: 7 - ../.docker/dynamodb_data:/data 8 ports: 9 - 8000:8000 10 11 dynamodb-admin: 12 image: aaronshaf/dynamodb-admin:latest 13 container_name: dynamodb-admin 14 environment: 15 - DYNAMO_ENDPOINT=dynamodb-local:8000 16 ports: 17 - 8001:8001 18 depends_on: 19 - dynamodb-local
dynamoid.rb
1require "dynamoid" 2Dynamoid.configure do |config| 3 config.region = "ap-northeast-1" 4 config.endpoint = "http://localhost:8000" 5 config.access_key = xxxxx 6 config.secret_key = xxxxx 7 end 8end 9
試したこと
aws cliでレスポンスが帰ってくるの確認、dynamodb-adminを使ってテーブルの作成ができることの確認はできました。
aws dynamodb list-tables --endpoint-url http://localhost:8000
また、config.endpoint = "http://localhost:8000" を消した状態で、レコード生成したところ、AWSのコンソール上で生成できているのを確認できました。(エラーも出ていません)
補足情報(FW/ツールのバージョンなど)
バージョンはrails 7.0.3 ruby 3.1.1です
結構手詰まりでどうしていいのかわかりません。ご教授よろしくお願いいたします。
あなたの回答
tips
プレビュー