😸

AWS CDK v2とLocalStack v3を使ってローカルでSQSとLambdaを動かす

2024/01/19に公開

概要

  • LocalStackを使って、ローカル環境にAWS CDKデプロイした際のメモ。

環境の準備

サンプル

  • Github: https://github.com/FuminoriSugawara/cdk-lambda-sqs-sample
  • 今回は2つのLambda関数を用意し、SQSのキューで連携するケースを作成してみた。
  • プロジェクトのルートディレクトリで以下を実行すると、LocalStackのコンテナが起動する
DEBUG=1 docker compose up
  • ターミナルで別ウィンドウを立ち上げてLocalStack上にcdk bootstrap と cdk deployを行う
cd cdk
cdklocal bootstrap && cdklocal deploy --require-approval=never
  • ターミナルで以下のコマンドを実行し、PublisherLambdaを実行する
awslocal lambda invoke --function-name PublisherLambda output.txt
  • LocalStackのコンテナを起動しているウィンドウでReceiverLambdaのコンソールログが出力される

メモ

  • LocalStackがv3になり、ライセンスキーの入力方法が変わった
  • LocalStack Proを使うとLambda layerなどの機能を使えるようになる
  • LocalStackのDocker composeをつかうと、プロジェクトごとにコンテナが立てられてよい
  • Macの場合はroute53のポートが競合するので変更が必要
  • 事前にVPCを用意しておきたい場合は、cdklocalデプロイ前にawslocalで必要なリソースを登録しておく
  • cdk.context.jsonがlocalstack用に追加されるので、テスト時に追加された値はGitのコミットに含めないように注意する
  • LocalStackのコンテナは頻繁にアップデートがされるので、不具合がある場合は、新しいバージョンにしてみると解決するかもしれない
  • LocalStackのSlackワークスペースで気軽に質問できるので、不具合がある際は問い合わせてみると親切に回答してくれる

Discussion