ローカルでAWSダイナモを走らせる方法
DynamoDBインスタンスをローカルで実行するのは、テストのために大きいか、どんなコストも発生させることなく回避することです.クラウド内のダイナモとまったく同じように動作します.ローカルインスタンスを作成し、エンドポイント(js)を追加するか、またはエンドポイント(URL)を追加して、AWS SDKのDynamoDBオブジェクトを作成するとき、またはCLIを使用するときに- Endpoint URLオプションを指定します.
ステップ1 -ローカルインスタンスの作成
最も簡単な方法は、DynamoDB Dockerイメージを介してです.あなたのコードをテストしている方法とあなたが作っていることによって、このためのプロセスはわずかに異なります.
を使用している場合
私が最初にこれをしようとしていた時、私はAWS SAMを使ってServerless APIを構築していました.これは、コンテナの完全なAPIゲートウェイを行うでしょう.したがって、SAMコンテナとDynamoDBコンテナがネットワーク上で互いに話をする必要がありました.私は、rynop's answer on StackOverflowにネットワークとコンテナをセットアップするDocker構成ファイルを見つけました.これが私のバージョンです.
あなたが何かを使っているならば
コンテナーでコードを実行している場合は、上記と同様の操作を行う必要があります.さもなければ、あなたはそのようにそれをすることができます(コンテナはhttp://localhost:8000でアクセス可能です).
2 -テーブルを作成する
テーブルを作成するには、以下の内容を使用してJSONファイルを作成します(環境に必要に応じて調整します).
ステップ1 -ローカルインスタンスの作成
最も簡単な方法は、DynamoDB Dockerイメージを介してです.あなたのコードをテストしている方法とあなたが作っていることによって、このためのプロセスはわずかに異なります.
を使用している場合
私が最初にこれをしようとしていた時、私はAWS SAMを使ってServerless APIを構築していました.これは、コンテナの完全なAPIゲートウェイを行うでしょう.したがって、SAMコンテナとDynamoDBコンテナがネットワーク上で互いに話をする必要がありました.私は、rynop's answer on StackOverflowにネットワークとコンテナをセットアップするDocker構成ファイルを見つけました.これが私のバージョンです.
version: '3.5'
services:
dynamo:
container_name: local-dynamodb
image: amazon/dynamodb-local
networks:
- local-dynamodb
ports:
- '8000:8000'
volumes:
- dynamodata:/home/dynamodblocal
working_dir: /home/dynamodblocal
command: '-jar DynamoDBLocal.jar -sharedDb -dbPath .'
networks:
local-dynamodb:
name: local-dynamodb
volumes:
dynamodata: {}
これを実行するには、Docker Composeというファイルに保存します.YMLと実行docker-compose up -d dynamo
これが設定されたら、プロジェクトフォルダの以下のようなコマンドを実行して、ダイナモとSAMコンテナをお互いに話しかけることができます.この環境で動作していることを検出するには、ラムダコード内のAWSNER SAMRIGHTローカル環境変数を確認できます.DBに接続するには、エンドポイントURLとしてhttp://dynamo:8000を使用します.sam build --use-container
sam local start-api --docker-network local-dynamodb --skip-pull-image --profile default --parameter-overrides 'ParameterKey=StageName,ParameterValue=local'
あなたが何かを使っているならば
コンテナーでコードを実行している場合は、上記と同様の操作を行う必要があります.さもなければ、あなたはそのようにそれをすることができます(コンテナはhttp://localhost:8000でアクセス可能です).
docker run --rm -d -p 8000:8000/tcp amazon/dynamodb-local:latest
これは、ポート8000がlocalhostに転送されたDynamoDBコンテナの最新バージョンを実行します.したがって、設定する必要のあるエンドポイントURLはhttp://localhost:8000です.2 -テーブルを作成する
テーブルを作成するには、以下の内容を使用してJSONファイルを作成します(環境に必要に応じて調整します).
{
"TableName": "testTable",
"KeySchema": [
{ "AttributeName": "id", "KeyType": "HASH" }
],
"AttributeDefinitions": [
{ "AttributeName": "id", "AttributeType": "N" }
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 2,
"WriteCapacityUnits": 2
}
}
aws dynamodb create-table --cli-input-json file://local-db-create.json --endpoint-url http://localhost:8000
Reference
この問題について(ローカルでAWSダイナモを走らせる方法), 我々は、より多くの情報をここで見つけました https://dev.to/ara225/how-to-run-aws-dynamodb-locally-156iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol