Posted at

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