はじめに
AWS Lambdaは、サーバーレスコンピューティングを可能にするAWSの重要なサービスですが、Lambda はGo1.xランタイムの廃止とprovided.al2
ランタイムへの移行を予定しています。
この記事では実際に変更した際に修正した箇所についてまとめます。
変更内容
公式ブログと、クラメソさんの記事を参考に以下の通り変更しました
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Metadata:
BuildMethod: go1.x
Properties:
CodeUri: hello-world/ # folder where your main program resides
Handler: bootstrap
Runtime: provided.al2
Architectures:
- x86_64
sam deploy 後
以下のようなエラーが発生しました
Phase: invoke Status: error Error Type: Runtime.Unknown
問題への対処
調べたところ、 github.com/aws/aws-lambda-goが古いとal2 runtimeに対応してないことがわかりました。 そのため、以下の対処を行いました。
go get github.com/aws/aws-lambda-go
go mod download gopkg.in/yaml.v3
古い aws-lambda-go は provided.ai2 ランタイムには対応してないようで細心にする必要があったようです。