Lambdaといえば言わずも知れたAWSのサービスで、
その大きな特徴は「サーバーを用意せずにコードだけ書いて実行できるサービス」である。
もっと簡単に言えば
**「用があるときだけ出てきて働くプログラムロボット」**。
自分が現場でLambdaをGo言語で実装する機会があり、
その環境構築に一癖あったので書いてみようと思う。
先ほども書いたが、LambdaでGo言語を扱うには少し難しい。
理由は「goのランタイムが無い」こと。
正確には以前にはあった。
ただ、2023年12月31日にAmazon Linux 1のサポート終了に伴い、 go1.x ランタイムを廃止 となった。
それにより、
Go言語でLambdaの実装するにはローカルでビルド環境を構築し、ビルドした資材をアップロードすることになる。
別案件でPythonでのLambda実装も携わったのだが、
やはりランタイムが容易されているPythonの場合はぱっとアップロードして、ぱっと試せるのが良いなと思った。
参考)https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/golang-package.html#golang-package-windows
→Windows での .zip ファイルの作成
・Windows ローカルマシンに Go がインストールされていること
・本リポジトリを Windows ローカルマシンに git clone されていること
go install github.com/aws/aws-lambda-go/cmd/build-lambda-zip@latest
上記を実行すると、ローカルの環境変数「GOPATH」のディレクトリに.exe ファイルがダウンロードされる。
※通常[%USERPROFILE%\Go\bin] 配下
以下、コマンドプロンプトで実施
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -tags lambda.norpc -o bootstrap main.go
%USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip bootstrap
公式ドキュメントにも一応手順は載っていたが、
知識ゼロだと分かりにくかったので試行錯誤した。
無事に動いてよかった。