継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

AWS Lambda + Go で初歩的なミスをまとめる

タダです.

AWS Lambda を Go で書くことを久々にやっていると,そもそも初歩的なミスでコードを実行するとことまで至るのに時間がかかってしまいました.そのため,備忘録的に何をしたのかをまとめていきます.

ハンドラーの指定

Lambda ハンドラーの指定はビルド後の実行可能なバイナリファイル名を指定する必要があります.適当な名前にしておくとエラーになるため,適宜修正します.

ローカル環境が M1 で発生したエラー

コードを zip でアップロード後にテストを実行したら, fork/exec /var/task/main: exec format error: PathError というエラーが発生しました.ハンドラーの指定も合っているのになぜ?と思って調べたら M1 環境だと zip ファイルにする前のビルドで気をつけるべきことがありました. GOARCH=amd64をつけてビルドをする必要があり,ビルド後に zip ファイル化してテストしたらエラーが発生せずに通りました.

$ GOARCH=amd64 GOOS=linux go build ./main.go
$ zip main.zip ./main

まとめ

AWS Lambda を Go で動かす時にやった初歩的ミスとその対処をまとめました.