2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LambdaとLocalstackを使ったDynamoDBのテスト

Last updated at Posted at 2019-08-01

LambdaからLocalStackを使用してローカル環境でDynamoDBのテストをしたので、備忘録として。

エンジニア歴1ヶ月のベビーエンジニアがこれを書いているので、間違いやぬけ、勘違いがあれば指摘いただければありがたいです。

###LocalStackの準備

すでにLambdaは用意済みなので、LocalStackを用意するところから。

が、その前にLambdaとLocalStackを同じネットワーク内に用意しておかないといけないので、dockerのlocalnetworkを構築します。

$ docker network create -d bridge 任意のネットワーク名

dockerのlocalnetworkを用意したら、localstackを起動します。

$ docker run -it --network ネットワーク名 --name=localstack -p 4563-4593:4563-4593 -p 8080:8080 -e LOCALSTACK_SERVICES=dynamodb localstack/localstack

これでLocalStackでDynamoDBのモックが用意できました。

###LocalStack内DynamoDBにTableを作成

次は、DynamoDB内にTableを用意します。

$ aws --endpoint-url=http://localhost:4569 dynamodb create-table \
  --table-name YOUR_TABLE_NAME --attribute-definitions AttributeName=YOUR_ATTRIBUTE_NAME1,AttributeType=S --key-schema AttributeName=YOUR_ATTRIBUTE_NAME2,KeyType=HASH \
  --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

最後のReadCapacityUnitesとWriteCapacityUbitsはオプションなので、ここでは1にしていますがアプリに合わせて変更が必要です。

これでLocalStackとLambdaの連携が完了です!

あとはLambda側の関数でput_itemやget_item等のメソッドを記述すれば、LocalStackのDynamoDBにストアしたデータを取ってくることができます。

##まとめ

LambdaとLocalStackのDynamoDBを同じdocker network内に配置し、(仮)DynamoDBのテストができるまでの流れでした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?