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

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化しましょう。

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です