【Go言語】Golang×Lambdaでのエラー

Go

Golang×Lambdaでのエラー

LambdaAPI GatewayでAPIを作成していて、新しく追加したLambdaの実行がエラーになることがあったので、備忘録として残しておきます。

発生したエラー

新しく追加した関数だけ動かないので、えぇえ!??となりました。

fork/exec /var/task/bin/src/lambda/****/***/Handler: exec format error: PathError
null

原因

すごく単純なミスで、かつLambda特有のミスでした・・!

package package_name

ここのpackage_nameをLambdaではmainにしないといけないので忘れずに・・!

普段Lambdaでやらず、Goland上でファイル作成すると自動的にディレクトリ名と同名のpackage名にしてくれるので全然違和感を感じませんでした・・!(むしろ普段はこれが正しいですね・・)

まぁLambdaの場合は、1エンドポイントに1関数を書いているので、main()関数を何個も書くのですね・・!

普段は起点を1個書いて終わりなので忘れがち・・。
(たまにLambda使うとまたハマりそうなので、記事としてメモ・・)

修正内容

package_nameを直すだけですね!

package package_name
↓
package main

全体

修正前

package package_name

import (
	"github.com/*****/****"
	...
)


func Handler(ctx context.Context) (Response, error) {
	...
	...

	return resp, nil
}

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

修正後

package main

import (
	"github.com/*****/****"
	...
)

func Handler(ctx context.Context) (Response, error) {
	...
	...

	return resp, nil
}

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

まとめ

今回は、Golang×Lambdaで発生したエラーの対処方法でした!

Golandからファイル作成していると、package名を自動で決めてくれるので便利ですが、Lambdaの時はまたハマりそうですね!

その時は、エラー文とこの記事の内容が参考になれば良いです。

オススメの関連商品

Note一覧

コメント

タイトルとURLをコピーしました