AWS Lambda
開発者ガイド

Go の AWS Lambda デプロイパッケージ

Lambda 関数を作成するには、最初に Lambda 関数デプロイパッケージ (コード (Go 実行可能ファイル) と依存関係で構成される .zip ファイル) を作成します。

デプロイパッケージを作成した後、それを直接アップロードできます。またはオプションで先に .zip ファイルを Lambda 関数を作成する同じ AWS リージョンの Amazon S3 バケットにアップロードしておき、その後コンソールまたは AWS CLI を使用して Lambda 関数を作成するときにバケット名とオブジェクトキー名を指定できます。

Go の Lambda ライブラリを go get でダウンロードし、実行可能ファイルをコンパイルします。

~/my-function$ go get github.com/aws/aws-lambda-go/lambda ~/my-function$ GOOS=linux go build main.go

GOOSlinux に設定すると、非 Linux 環境でコンパイルする場合でも、コンパイルされた実行可能ファイルと Go ランタイムとの互換性を確保できます。

実行可能ファイルを ZIP ファイルにパッケージ化してデプロイパッケージを作成し、AWS CLI を使用して関数を作成します。ハンドラーのパラメータは、ハンドラーを含む実行可能ファイルの名前と一致する必要があります。

~/my-function$ zip function.zip main ~/my-function$ aws lambda create-function --function-name my-function --runtime go1.x \ --zip-file fileb://function.zip --handler main \ --role arn:aws:iam::123456789012:role/execution_role

Windows におけるデプロイパッケージの作成

AWS Lambda で動作する .zip を Windows で作成するには、build-lambda-zip ツールのインストールが推奨されます。

注記

上記を実行していない場合には、git をインストールし、続いてお使いの Windows %PATH% 環境変数に git 実行可能ファイルを追加します。

ツールのダウンロードには、次のコマンドを実行します。

go.exe get -u github.com/aws/aws-lambda-go/cmd/build-lambda-zip

GOPATH でこのツールを使用します。Go のデフォルト版インストールがある場合、このツールは通常 %USERPROFILE%\Go\bin にあります。それ以外の場合は、Go ランタイムをインストールした場所に移動し、次の操作を行います。

cmd.exe で次を実行します。

set GOOS=linux go build -o main main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o main.zip main

Powershell で、次を実行します。

$env:GOOS = "linux" go build -o main main.go ~\Go\Bin\build-lambda-zip.exe -o main.zip main