dynamodb-admin で localstack へ接続する際に UnknownEndpoint

Published: 2022/10/25


Localstack で立ち上げた DynamoDB へ dynamodb-admin で接続しようとして、一瞬ハマったのでそれについてのメモ。

前提

$ pip install localstack
$ npm i -g dynamodb-admin

にて localstack と dynamodb-admin をインストール。 環境は MacOS。

localstack は以下のコマンドで立ち上げ、 boto3 などでは問題なく叩けている状態。

$ localstack start -d

症状

$ DYNAMO_ENDPOINT=http://localhost:4566/ dynamodb-admin

で起動した dynamodb-admin にアクセスすると、以下のエラーが発生した。

UnknownEndpoint: Inaccessible host: `localhost' at port `4566'. This service may not be available in the `ap-northeast-1' region.

原因と対処

立ち上げられた localstack は IPv4 の 127.0.0.1:4566 を bind しているが、 dynamodb-admin は localhost:4566[::1]:4566 の IPv6 のアドレスに解決し、それに対してのアクセスを試みていた。

なので、以下のようにして IPv4 のアドレスでアクセスするように DYNAMO_ENDPOINT を設定することで、この問題は解消した。

$ DYNAMO_ENDPOINT=http://127.0.0.1:4566/ dynamodb-admin

Tags: localstackdynamodb

関連記事