はじめに
AWS SAM を使って Java の Lambda プロジェクトを作成し、
ローカルで API を起動するところまで試してみたので、その手順をまとめます。
AWS と Java の学習を兼ねて、Windows 環境で最小構成の API を動かしてみました。
前提環境
- windows
- IntelliJ IDEA 2025.3.4
- Java 25
- Docker Desktop
- Gradle 9.1.0
- SAM CLI 1.156.0
SAM プロジェクトの作成
SAM CLIのインストール
プロジェクト作成
sam init --runtime java25
Java 25 を使用します。
最新の環境で動作確認したかったため選択しました。
> 1 - Hello World Example
今回は Lambda を前提としたサンプルのため、Hello World Example を選択します。
> 1 - gradle
Gradle を選択します。
> Would you like to enable X-Ray tracing on the function(s)?
> Would you like to enable monitoring using CloudWatch Application Insights?
> Would you like to set Structured Logging in JSON format on your Lambda functions?
今回は基本的な動作確認を目的としているため、これらのオプションはすべて無効にしています。
必要に応じて template.yaml から後で有効化可能です。
> Project name [sam-app]:
任意の名前を設定します。
この名前はプロジェクトディレクトリ名などに使用されます。
次回以降でLINEのWebhookを用いて実装を進めるので、webhook-app としました。
JDK を設定する
IntelliJ でプロジェクトを開きます。
-
メインメニューから、ファイル | プロジェクト構造 を開く
-
プロジェクトタブ > SDK からJDKのダウンロードを開く
ビルドとローカル実行
作成したプロジェクトのディレクトリに移動してビルドコマンドを実行します。
sam build
このコマンドで依存関係の解決とビルドが行われ、.aws-sam ディレクトリが生成されます。
ビルド成果物や設定がこのディレクトリ配下に出力されます。
sam local start-api は Docker コンテナ上で Lambda をエミュレートするため、Docker Desktop の起動が必要です。
実行前に、Docker Desktop を起動してください。
sam local start-api
sam local start-api によって API Gateway と Lambda のローカルエミュレーション環境が立ち上がります。
以下にアクセスすると動作確認できます。
http://localhost:3000/hello
{
"message": "hello world",
"location": "121.x.xx.xxx"
}
まとめ
これにて、環境構築は完了です。
次回はLINE Messaging APIを用いて、ローカルで動く簡易的なChatbotを作成したいと思います。


