Edited at

AWS Lambda× Goを試す

More than 1 year has passed since last update.


はじめに

AWS LambdaでGoがサポートされたので、早速、試してみました。

この記事では、


  • AWS Lambdaの簡単な使い方

  • AWS LambdaでGoを動かす方法

を紹介しています。

ザクザク行けば、10分くらいでLambdaの実行までいけると思います


Lambdaを作成する

AWS Lambdaのトップから、関数の作成を選択

Lambda_Management_Console.png

名前やロールなどを設定し、関数の作成を選択

ランタイムはGo 1.Xとします

ロールは、使用されるリソースに応じてお好みで。

aws_lambda_sample.png


Lambdaで動かすGoを作る


公式ライブラリを使用する

公式のGoのライブラリgo getします。

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


コードを書く

※公式のサンプルのまま書いています。


main.go

package main

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

func hello() (string, error) {
return "Hello ƛ!", nil
}

func main() {
// Make the handler available for Remote Procedure Call by AWS Lambda
lambda.Start(hello)
}



ビルドする

ビルドのターゲットは以下を指定

GOOS=linux GOARCH=amd64 go build -o hello

これで、 helloという名前のバイナリがカレントディレクトリに生成されます。

$ ls

hello main.go


zipに圧縮する

手動アップロードの場合、Lambdaに上げる時はzipで上げなければいけないため、固めます。

$ zip hello.zip hello 

adding: hello (deflated 66%)
$ ls
hello hello.zip main.go


アップロード

アップロードから、先程作成したhello.zipを選択してアップロードを実行します。

アップロード後は、右上のテストボタンを選択します。

Lambda_Management_Console.png


テスト

テストを作成します。作成後、右上の保存を選択してください。

Lambda_Management_Console2.png

テストを実行すると…

ちゃんと、 Hello ƛ!と出力されています :tada:

Lambda_Management_Console3.png


終わりに :airplane:

読んで下さりありがとうございます。

今回はサンプルだけなので、次回は実際に活用した記事を書く予定です。