🦑

Serverless FrameworkでGoのLambda Functionをデプロイする

2023/04/05に公開

Serverless Frameworkを使用して、Goで作ったLambda Functionをデプロイするためのメモ。最近、Goを勉強しています。

この記事で言いたいこと

公式のテンプレート

$ sls create --template aws-go-mod -p my-service

この記事で言いたかったこと

テンプレートを作りました
https://github.com/nakamurakzz/sls-go-lambda.git

背景

「Serverless Framework Go Lambda」で検索すると、2018年にリリースされた公式の記事が上位にヒットし、この記事の中ではaws-go-depテンプレートを使用したデプロイ方法が紹介されています。

ところが、aws-go-depテンプレートで使用されているパッケージ管理ツールのdepですが、現在は非推奨です。Go 1.14からはmoduleを使用することが推奨されています。

https://github.com/golang/go/wiki/Modules

そのため、2023年現在、大半のケースではaws-go-depテンプレートの使用しない方が良いでしょう。
そこで、aws-go-depテンプレートを使用せずに、GoのLambda Functionをデプロイする方法のメモとして、記事を書き始めました。

...が、少し調べると、moduleを使用したテンプレート(aws-go-mod)がありました。まずは、こちらを使用してプロジェクトを作成してから、アレンジするのが良いでしょう。

$ sls create --template aws-go-mod -p my-service

以上です。

書きたかったことを少しだけ

せっかくなので、上記のテンプレートを使わずに作成したリポジトリを紹介しておきます。

リポジトリ

https://github.com/nakamurakzz/sls-go-lambda.git

  • make deploy AWS_PROFILE=xxx でデプロイすることで、任意のAWSアカウントにデプロイできます
  • 検証が終わりましたら、make remove AWS_PROFILE=xxxにて、デプロイしたリソースを削除してください

参考

GitHubで編集を提案
NCDCエンジニアブログ

Discussion