Go
AWS
golang
HelloWorld
lambda

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:

読んで下さりありがとうございます。
今回はサンプルだけなので、次回は実際に活用した記事を書く予定です。