$ cp common.env.default common.env環境変数のPREFIX(すべて英数字。英字は小文字のみ)、APPLICATION_NAMEを適宜変更する。
PREFIXはpwgen -Aで生成することを推奨する。
$ pwgen -Apwgenがない場合はbrew install pwgenでインストールしてください。
ビルドを行う前に、Dockerを必ず起動してください。
ビルドを行う前に以下のコマンドでDBだけを起動します。(sqlxがDBに接続できるようにするため)
$ makers docker-compose-up-db$ makers build注意: sqlxにて発行するSQLを追加、修正した際は、各プロジェクト直下でcargo sqlx prepareを実行する必要があります(.sqlx/
にJSONファイルが生成されます)が、makers build時に自動的にcargo sqlx prepareが実行されるように設定しています。
なので、SQLを追加、修正した際は必ずmakers buildを実行してください。生成された.sqlx/*.json
ファイルはgitの管理下に含めてください。このときに、DBサーバに接続する必要があるので、makers docker-compose-up-db
を実行しておく必要があります。
makers docker-compose-up を実行すると、コンテナ起動後に LocalStack へ Lambda が自動デプロイされます。手動で再デプロイしたい場合は次のコマンドを利用してください。
$ makers build-read-model-updater-lambda
$ makers deploy-read-model-updater-localstackbuild-read-model-updater-lambda は Docker 上で Lambda 互換バイナリをビルドして dist/lambda/read-model-updater/bootstrap.zip を生成します。
deploy-read-model-updater-localstack は AWS CLI を利用し、LocalStack に Lambda 関数を作成した後で journal テーブルのストリームとイベントソースマッピングを貼ります。
環境変数は common.env から読み込まれるため、LocalStack のエンドポイントやダミー認証情報を適宜設定してください。
テストを実行する前に、Dockerを必ず起動してください。
$ makers test注意: cargo test
でもテスト可能なのですが、今回はtestcontainersを使っている関係で同時に実行するテスト数を環境変数(RUST_TEST_THREADS=1)
で制限しています。
つまり、RUST_TEST_THREADS=1 cargo testでないとテストが正常に実行できないのでご注意ください。
makers testではデフォルトでRUST_TEST_THREADS=1となっているので、そのまま実行しても問題ありません。