3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Lambdaをローカルで爆速開発!面倒なデプロイともおさらばです

Posted at

AWS Lambdaをローカルで爆速開発!面倒なデプロイともおさらばです

こんな悩みありませんか?

「Lambda関数を書いた!よし、デプロイして動作確認...あれ?バグった...修正してまたデプロイ...」

このデプロイ地獄、私も経験しました(遠い目)。でも大丈夫!AWSの公式Dockerイメージを使えば、あなたのPCでサクッとLambdaを動かせちゃうんです。

今回の主役:AWS Lambda用Dockerイメージ

まずはAmazonが太っ腹に公開している Docker イメージたち から好きな言語のイメージを選びましょう。Node.js、Python、Java...選り取り見取りです!

今回は例としてNode.jsを使いますが、他の言語でもほぼ同じ手順でイケます👍

セットアップ:Docker Composeでお手軽構築

まずはcompose.yamlを作りましょう。コピペでOKです!

services:
  lambda-local:  # 好きな名前をどうぞ!
    image: public.ecr.aws/lambda/nodejs:20.2024.11.22.14
    command: [ "index.handler" ]
    restart: always
    volumes:
      - ./project_dir:/var/task
    ports:
      - "9000:8080"
    logging:
      options:
        max-size: "5m"
        max-file: "10"

ここでのポイント(要チェック!)

  • commandindex.handlerは「index.jsの中のexports.handler関数を実行してね」という意味です
  • volumesでプロジェクトのフォルダをコンテナにマウント。これで開発中のコードが見えるようになります
  • ポートは9000:8080にしてますが、もちろん変更OK!(ただし右側の8080は固定です🙇‍♂️)

実行してみよう!

お待ちかね、実行コマンドです:

curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"payload":"hello world!"}'

URLが「なんじゃこりゃ」という感じですが、気にしない気にしない!これで動きます😅

開発中の注意点(これ大事!)

  1. コードの変更を反映したいとき

    • コンテナの再起動が必要です
    • docker compose restart lambda-localでOK!
    • ホットリロード欲しい...(切実)
  2. デバッグが超ラク

    • ログも即確認:docker compose logs -f lambda-local
    • エラーもすぐわかる!(AWS コンソールとにらめっこよりずっといい)
  3. 本番環境との違い

    • IAMロールとかは別途設定が必要です
    • でも基本的な動作確認には困りません!

これがローカル開発のいいところ!

  1. 爆速開発🚀

    • デプロイ待ち?そんなの知らない!
    • 修正→実行→確認のサイクルが速すぎて笑えます
  2. お財布に優しい💰

    • AWS料金とはおさらば
    • 特に「えいや!」で試したいときに最高です
  3. オフラインでも開発OK!

    • 新幹線の中でも開発できちゃう
    • カフェのWi-Fiが死んでても平気!

さいごに

Lambda開発、実はローカルでもできるんです。しかも公式イメージなので、変な罠もありません。

この方法を使えば、開発効率が段違い。同僚に教えたら「え!そんなことできるの!?」と驚かれました(ニヤリ)。

みなさんもぜひ試してみてください!きっと開発生活が変わるはず...✨

参考リンク

おまけ

この記事を最後まで読んでくれた方、ありがとうございます!もし「いいね」していただけたら、次の記事のモチベーションになります😊

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?