LoginSignup
0
0

More than 3 years have passed since last update.

SAM+eclipseでaws lambdaのTDD - 環境構築編

Posted at

aws lambdaのTDD

  • 単体テスト: junit
  • 結合テスト: SAM

以上の組み合わせでTDDでlambdaを作成する

eclipseでlambda project作成

eclipseの「Help」->「install New Software」を選択
update site https://aws.amazon.com/eclipse - https://aws.amazon.com/eclipseを入力
以下の画像のようにチェックを入れてNextを押下
image.png

eclipseを再起動する旨のポップアップが出るため、それに従い再起動。

「File」->「New」->「other」より以下のようにlambdaプロジェクトを選択する
image.png

以下のように入力し、プロジェクトを作成
image.png

SAMlocal環境の構築

以下のAWS公式手順のうち、自分のOSに対応する手順でやれば構築できる
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html

テスト用CFnテンプレート作成

src/test/resources配下に以下のようにtemplate.ymlを作成する
image.png
このCFnテンプレートに結合テストで使用する他のAWSリソースを記述していく

さらにsrc/test/resources配下に以下のようにevent.jsonを作成する
image.png
このjsonファイルを結合テストで実行するlambdaのinputとして使う

SAMテスト実行

「Run」->「Run Configurations」からAWS SAM Localを選択し、以下のように入力しApplyを押下
image.png

以下のようにコンソールに出力されればSAMlocalでテストを行う準備はOK
image.png

次回は実際に単体テスト、結合テストをしながらTDDしていく

appendix

docker周りの設定で若干詰まった。
SAM localでテストを実行すると以下のエラーが発生した
docker.credentials.errors.InitializationError: docker-credential-desktop not installed or not available in PATH

~/.docker/config.jsonを以下のように修正するとエラー解消した

~/.docker/config.json
{

- "credsStore" : "desktop",

  "auths" : {

  },
  "stackOrchestrator" : "kubernetes"
}

Docker Registoryの認証情報保存先消すと上手くいく。
理由はよく分からないけれど。。

0
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
0
0