API Gatewayからのリクエストを受け取るAWS Lambda関数のプロジェクトです。
go-lambda-project/
├── email-handler/ # Emailを処理するLambda関数
│ ├── main.go
│ └── go.mod
├── phone-handler/ # PhoneNumberを処理するLambda関数
│ ├── main.go
│ └── go.mod
└── README.md
API Gatewayからのリクエストを受け取り、emailをログ表示してsuccessを返却するLambda関数です。
機能:
- API Gatewayからのリクエストを受け取る
- リクエストボディから
emailを取得 emailをログに出力- successレスポンスを返却
リクエスト形式:
{
"email": "example@example.com"
}レスポンス形式:
{
"status": "success",
"message": "Email received successfully"
}API Gatewayからのリクエストを受け取り、phoneNumberをログ表示してsuccessを返却するLambda関数です。
機能:
- API Gatewayからのリクエストを受け取る
- リクエストボディから
phoneNumberを取得 phoneNumberをログに出力- successレスポンスを返却
リクエスト形式:
{
"phoneNumber": "+81-90-1234-5678"
}レスポンス形式:
{
"status": "success",
"message": "Phone number received successfully"
}各Lambda関数のディレクトリで実行:
cd email-handler
go mod download
cd ../phone-handler
go mod download各Lambda関数を個別にビルドします。
email-handler:
cd email-handler
GOOS=linux GOARCH=amd64 go build -o bootstrap main.gophone-handler:
cd phone-handler
GOOS=linux GOARCH=amd64 go build -o bootstrap main.goWindowsの場合:
# email-handler
cd email-handler
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o bootstrap main.go
# phone-handler
cd phone-handler
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o bootstrap main.go各Lambda関数を個別にZIP化してデプロイします。
# email-handler
cd email-handler
zip function.zip bootstrap
# phone-handler
cd phone-handler
zip function.zip bootstrap各Lambda関数の設定:
- Runtime: Go 1.x
- Handler: bootstrap(またはビルドした実行ファイル名)
- Timeout: 適切な値を設定(デフォルト3秒)
SAM CLIやLambda Runtime Interface Emulatorを使用してローカルでテストできます。