AWS Lambda で go1.x ランタイムが使えなくなる ので、カスタムランタイムに移行しようと思います。 ビルドのコマンドをカスタマイズしたかったので、 Make を使ってビルドできるように設定します。
公式ドキュメント
docs.aws.amazon.com
Building Lambda functions with custom runtimes in AWS SAM - AWS Serverless Application Model
Build custom runtimes required for your Lambda function.
- template.yamlの
Metadata.BuildMethod
をmakefile
にする - Makefileにビルドターゲットを
build-<function-logical-id>
という名前で作成し、ここにビルドコマンドを書く - Makefileの置いてあるディレクトリを
Properties.CodeUri
に指定し、名前はMakefile
にする
サンプル
以下のようなディレクトリ構造の Go アプリケーションを例に説明します。
template.yamlを次のようにします。
Runtime
: Amazon Linux 2Architectures
: arm64Handler
:bootstrap
に固定
Makefileを作成します。
$(ARTIFACTS_DIR)
はアーティファクトの配置先を格納する環境変数です。{SAM実行ディレクトリ}/.aws-sam/build/MyLambdaFuction
に設定されていて、ここに bootstrap
を配置することでLambdaを実行できます。