[Go言語]Lambda関数実行時のpermission deniedについて

こんにちは。KOUKIです。

とある企業でWeb開発業務をしています。

今日は、Windows環境下で作成したGoファイルをAWSのLambdaにアップロードし、テストを実行した時にpermission deniedが出たよ、という話をします。

何をしたか

main.goファイルを作成して、以下のコードを書きました。

その後、以下のコマンドでコンパイルし、Windowsの「送る -> Zip」でバイナリデータをZip化しました。

そして、Lambdaにアップロードしてテストを実行したところ、以下のエラーに遭遇したのです。

解消方法

permission deniedとあるので、ファイルの実行権限に問題があると思いがちですが、エラーの原因はビルドファイルが正しい方法でコンパイルされていないことでした。

AWS Lambda で動作する .zip を Windows で作成するには、build-lambda-zip ツールのインストールが推奨されているようです。参考リンク

以下のコマンドでインストールできます。

次に以下のコマンドを実行して、ビルドファイルをZip化します。

作成したファイルを使ってテストを実行したところ、無事にテストが成功しました!

おわりに

AWSを使ったことがこれまでなかったんですよね。そのため、LambdaやS3などのサービスを触ることができて、結構ラッキーな職場です。

ガンガンAWSサービスを使いこなしていきたいですね。

それでは、また!

過去記事

オススメ書籍