Go
AWS
lambda

AWS Lambda でGoを動かしてみる

1.png

ランタイムにGoを選択します。

そしたらLambdaにデプロイするコードを書きます。
Lambdaのライブラリが必要なのでgo getで取得しましょう。

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

以下が実行するコードです。エンドポイントにアクセスすると"Hello"とだけ返します。

package main

import (
  "fmt"
  "context"
  "github.com/aws/aws-lambda-go/lambda"
)

func HandleRequest(ctx context.Context) (string, error) {
    return fmt.Sprintf("Hello!"), nil
}

func main() {
  lambda.Start(HandleRequest)
}

コードを書いたら実行ファイルを作成しましょう。
go buildでコンパイルするのですが、Linux向けでないといけないので、GOOSを指定します。
Lambdaにアップロードするにはzipにまとめる必要があるので、コンパイルできたらzipします。

$ env GOOS=linux go build -o hello
$ zip handler.zip ./hello

2.png

zipができたらLambdaの管理画面からアップロードを押して実行ファイルをデプロイしましょう。

結果を確認

では正しく結果が返ってくるのをテストしてみましょう。
管理画面のテストボタンを押してテストイベントを作ります。
実行する関数に引数は無いので、jsonは適当に書いておいてテストを作成します。

3.png

作成できたら管理画面でテストボタンをクリックすると、実行結果が表示されるので確認してみましょう。
"Hello"と出てたらOKです。

4.png