serverless-offlineとそのpluginを利用し、SQS→Lambda→SESのメール送信をローカル環境で検証できるようにする|SHIFT Group 技術ブログ
こちらの記事を参考にさせていただきましたが、こちらでは Serverless Framework を使っていますが、
自分の環境ではローカル実行時には AWS RIE を使ってビルドしたコンテナを使っているので、
Serverless Frameworkを使わない方法を調べました。
ちなみにserverlessをローカルで実行するのは serverless-offlineプラグイン
手順
ファイルを用意する
.
├── init
│ └── ready.d
│ └── ready.sh
├── my-function
│ └── main.go
├── my-function.zip
└── compose.yaml
LocalStackを起動する
Lambda関数をデプロイする
SQS動作確認
SES送信ログを確認する
Commutity版ではメール送信はされない ため、LocalStackのAPIで送信されたデータを確認する
Lambda実行ログを確認する
やっていること
起動時hookを使ってSQSキューを作る
LocalStackのライフサイクルフック を使って、LocalStack内の /etc/localstack/init/ready.d
にスクリプトを配置することで、起動時にSQSのキューを作ったりSESのverifyをしたりする
SQSをソースに、SESに送信するLambdaハンドラーを作成
SQSにキューイング
ここでは awslocal を使っているが、 aws --endpoint-url=localhost:4566
でも可能
これでSQSに紐付けられたLambdaが実行されて、SESのAPIがたたかれているはず