AWS Lambda
開発者ガイド

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

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

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

Lambda 関数で作成された Go については、Go ランタイムディレクトリ内の Go 用 Lambda ライブラリをダウンロードし、次のコマンドを入力します。go get github.com/aws/aws-lambda-go/lambda

次のコマンドを使用して、CLI を介した Go Lambda 関数の構築、パッケージ、デプロイを実行します。関数名は、Lambda ハンドラの名前と一致する必要があることに注意してください。

GOOS=linux go build lambda_handler.go zip handler.zip ./lambda_handler # --handler is the path to the executable inside the .zip aws lambda create-function \ --region region \ --function-name lambda-handler \ --memory 128 \ --role arn:aws:iam::account-id:role/execution_role \ --runtime go1.x \ --zip-file fileb://path-to-your-zip-file/handler.zip \ --handler lambda-handler

注記

Windows または macOS などの非 Linux 環境を使用している場合は、 ハンドラ関数コードをコンパイルするときに 「Linux」用の GOOS (Go オペレーティングシステム) 環境変数を設定して、ハンドラ関数が Lambda 実行コンテキストと互換性があることを確認してください。

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