(自分用メモのため編集中です)
概要
AWS Lambda関数自体のテストはJUnit等で単体テストを書けば行えるが、LambdaからS3の特定のバケットに書き込みを行うなどのテストはAWSにデプロイしないとできないという悩みがあった。10MBくらいのコードを毎回アップロードしてテストしていたが、AWS CLIを使ったとしてもあまりにもめんどくさいし地球に優しくないので、ローカルでAWS環境をレプリケートしてテストできたらとても嬉しい。
この項目では、AWS環境をローカルにレプリケートして、各サービスとの連携をテストできるようにする方法を説明する。
Lambdaと接続をテストできるAWSサービスは以下の通り
・S3
・・・
仕組み
各AWSサービスのモックをDockerコンテナを使用してローカルマシン内に構築することで、テストを行える。ただ、ここで構築した内容を本番環境に持っていくのが難しそうという悩みもある。
必要なもの
SAM CLI
SAM(Serverless Apprication Model)
上記URLからSAM CLIをインストールする
Localstack
手順
IntelliJから新規プロジェクトを起動
からAWS Serverless Appricationの
IntelliJの新規プロジェクト
→AWS Serverless Apprication
→SAM Templateが選択できていることを確認
フロー的な詳細
※GradleはJDK17じゃないと動かないので、モジュールのJDKは17にする必要がある。