Closed2

LambdaでGoをデプロイするまで 備忘録 (windows)

コードが書き終わった後のデプロイについて。
基本公式ドキュメントと同じです。

環境

win10
powershell

手順

  1. ビルド
    lambdaで選択したアーキテクチャ向けにビルドする必要がある。(現時点でgoはx86_64(=amd64)しか選べない)
    img

    1. 環境変数変更
    $env:GOOS = "linux"
    
    • linuxamd64へ環境変数が変わっているか確認
    go env GOOS GOARCH 
    linux
    amd64
    
    1. バイナリ作成
    go build -o <バイナリファイル名> ./<ファイル名>.go    
    
  2. zipファイルの作成
     エクスプローラーからのzip化ではlambda関数実行時にpermission deniedというエラーが発生するため、build-lambda-zipという公式のツールを利用する。

    1. ツールダウンロード
    go.exe get -u github.com/aws/aws-lambda-go/cmd/build-lambda-zip  
    
    1. バイナリファイルをzip化
    ~\go\bin\build-lambda-zip.exe -output <zipファイル名>.zip .\<バイナリファイル名>
    
  3. アップロード(マネコン上)
    自身のlambda関数のコードソースからzipファイルをアップロードする。
    img

  4. ランタイム設定の編集
    ランタイムのハンドラを先ほどのバイナリファイル名に変更する。
    img

  5. テスト
    ここまできたら終了です。テストをしてみてください。
    img

エラー等

exec format errorpermission deniedが出る場合はバイナリファイルやzipファイルのフォーマットが正しくない可能性があります。
自身の環境変数を確認して見てください。

go env GOOS CGO_ENABLED GOARCH
linux
0
amd64

コードはドキュメントを参考にaws-lambda-goのインポートとlambda.Start()で実行させることに注意。

このスクラップは2022/02/04にクローズされました
ログインするとコメントできます