Serverless DynamoDB Local についてのメモ
serverless-dynamodb-localを使うとローカルでサクッとdynamodbが起動して便利なのですが、
ただバックグラウンドで起動するオプションが無いのでTestのときCIで動かしたかったので少し調べたメモ。
serverless-dynamodb-local
https://serverless.com/plugins/serverless-dynamodb-local/
ソースを見てみると本当に1000行くらいでシンプル。
プラグインなのでお作法に載ってコマンド名+呼び出したいメソッドを書いているんだなと言う感じ。
実際プラグインの作り方をみるとほぼテンプレ通りな感じ。
https://serverless.com/blog/writing-serverless-plugins/
dynamodb-localhost
serverless-dynamodb-localのstartHandlerのなかでdynamodb-localhostを呼んでいる。
これもかなりゆるく作られているので。
https://github.com/99xt/dynamodb-localhost/blob/master/dynamodb/starter.js
node child-process
nodejsでコマンドを実行できる。lsとか。 javaコマンドを実行ている。
https://github.com/99xt/dynamodb-localhost/blob/master/dynamodb/starter.js#L45
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.UsageNotes.html
全体的な動きとしては
serverless が serverless-dynamodb-localのメソッドを呼ぶ。
serverless-dynamodb-localはdynamodb-localhostを呼ぶ。
dynamodb-localhostはawsのsdkを起動する。その時javaコマンドを内部で実行している。