Himawari Project Logo

Himawari Project

Lambdaでハンドラーが認識されない

Lambdaでハンドラーが認識されない

6/22/2024

#技術#Lambda

今回は、AWS Lambda でハンドラーが認識されないときの対処方法をご紹介します。

前提

  • macOS 14.4(M2 MacBookAir)

  • AWS CLI 環境

再現手順

  • 1. 作成したコードを、Zip 化する

  • 2. Zip のあるフォルダで以下を実行

aws s3 cp ./Zip化したコード s3://バケット名

上記のコマンドで、s3 へ対象コードをアップロードします。
バケットは事前に作成しておいてください。

  • 3. Lambda 関数を作成する
aws lambda create-function \
    --function-name Lambda関数の名前 \
    --runtime ランタイム(python3.11など) \
    --code S3Bucket=バケット名,S3Key=Zipのファイル名 \
    --handler lambda_function.lambda_handler \
    --role ロールのARN
  • 4. AWS のコンソールに行き Lambda のページを選択します。

  • 5. Lambda のページから作成した、関数を選択します。

  • 6. テストタブからテストを選択し、実行します。

以下のエラーが発生しました。

解決手順

Zip 化する際に、OS の GUI から圧縮を行う(手順 1)を行うと lambda_function を見つけられずエラーとなってしまうので、ターミナルから zip コマンドを利用して zip ファイルを作成します

zip -r scraping-rakuten-sec.zip *

上記で zip 化したコマンドを手順2の方法で s3 へ転送します。

コードソースから Amazon S3 の場所を選択し、指示に従って、zip 化したファイルの s3 リンクを貼り付けて Lambda 関数を更新します。

まとめ

zip 化するときは、OS の圧縮機能を使わずに、zip コマンドを利用して zip 化しましょう。