Help us understand the problem. What is going on with this article?

ServerlessFrameworkにてaws-go-modテンプレートのサービスをデプロイしてみる

とりあえずやってみた系。
大した情報ではないが、aws-go-modについてはServerlessFramework本家のサンプルもなく、海外も含め、まだ情報が少なそうだったので一応公開しておく。
誰かのお役に立てればこれ幸い。

aws-go-mod?

ServerlessFrameworkでは、今現在(2019/03/26)、Lambdaのgoランタイムでは以下の3種から選択できる。
・aws-go
・aws-go-dep
・aws-go-mod

後者の2つはパッケージ管理ツールが含まれたものとなる。
それぞれ、dep、Moduleというツールになる。
Moduleはdepの後継版にあたり、今後はModuleが主流になる模様。新規に始める場合はこちらを選んでおきましょう。

実行コマンドの履歴

サービス生成

ServerlessFrameworkコマンドにてサービス生成する。

$ sls create --template aws-go-mod --path test-func
$ cd test-func
$ ls
Makefile    gomod.sh    hello       serverless.yml  world

ビルド(失敗)

ビルドしてみるがエラー :(

$ make build
chmod u+x gomod.sh
./gomod.sh
export GO111MODULE=on
env GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go
hello/main.go:8:2: cannot find package "github.com/aws/aws-lambda-go/events" in any of:
    /usr/local/Cellar/go/1.10.3/libexec/src/github.com/aws/aws-lambda-go/events (from $GOROOT)
    /Users/hiroyama/go/src/github.com/aws/aws-lambda-go/events (from $GOPATH)
hello/main.go:9:2: cannot find package "github.com/aws/aws-lambda-go/lambda" in any of:
    /usr/local/Cellar/go/1.10.3/libexec/src/github.com/aws/aws-lambda-go/lambda (from $GOROOT)
    /Users/hiroyama/go/src/github.com/aws/aws-lambda-go/lambda (from $GOPATH)
make: *** [build] Error 1

必要なパッケージをDL。

$ go get -u github.com/aws/aws-lambda-go/lambda

ビルド(リトライ)

成功 :)

$ make build
chmod u+x gomod.sh
./gomod.sh
export GO111MODULE=on
env GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go
env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go
$ ls
Makefile    bin     go.mod      gomod.sh    hello       serverless.yml  world

デプロイ

成功 :)

$ sls deploy

ちなみに、以下のコマンドでビルドからデプロイまで実施できる。
通常はこっちの方が使うことが多そう。

$ make deploy
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away