Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@Hiroyama-Yutaka

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

More than 1 year has passed since last update.

とりあえずやってみた系。
大した情報ではないが、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
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  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
Hiroyama-Yutaka
組み込み開発エンジニアを経てクラウドインテグレーターに。 現在はAWSやGCPの技術サポートや運用改善ツールの開発、セキュリティを担当。 AWS8冠、GCP5冠、Azure1冠。
cloudpack
Amazon Web Services (AWS) の導入設計、環境構築、運用・保守をサポートするマネジドホスティングサービス

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?