タイトル通りであります。GO言語でDBにアクセスするLambda用の関数を作りデプロイ、検証までやってみました。(現時点ではDB接続までです。)自分の作業メモとして残していきます。

■GoでLambda用の実行関数ランタイムを作成する

参考にしたのは、こちら。

まずGoのLambdaプログラミングモデルを実装するパッケージをインストール。

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

書き起こしたコードは下記。処理を実行するfunctionを用意(handle_request)し、この関数をmainでコールする lambda.Start の引数とする。

func handle_request(ctx context.Context) (string, error) {
	jsonlogger := pkg_log.GetInstance()
	jsonlogger.Info("main")

	dbErr := pkg_db.Db_base_init()
	if dbErr != nil {
		slog.Info("DB Error", "err", dbErr)
		return "NG", dbErr
	}
	return "OK", nil
}

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

※自作の関数、モジュールを使っています。

一通り組み終えたら、ビルドして実行ファイルを作成します。この際、関数コードを含む実行ファイルの名前は bootstrap でなくてはいけません。ですので、下記のようなビルドコマンドを実行します。

GOOS=linux go build -o bootstrap handler.go

handler.go : main関数を含まれるGoファイル。

ビルドされた実行ファイル(bootstrap)をzip化します。(私は7-Zipを利用し、function.zipというファイル名としました。)

こちらを実行するLambda関数を次から用意していきます。

Follow me!

おすすめの記事