17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS Lambda】Python外部ライブラリのimportにおけるUnable to import module 'lambda_function'エラーの対処方法

Last updated at Posted at 2023-01-03

概要

外部ライブラリをimportしたときに以下のエラーが発生した場合にLayerを追加して対応する

Response
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'ライブラリ名'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "リクエストID",
  "stackTrace": []
}

対応手順

エラーが発生する例

今回は例として、requestsライブラリをimportする

以下のスクリプトをLambdaで実行するとエラーが発生する

lambda_function.py
import requests

def lambda_handler(event, context):
    
    res = requests.get('https://example.com')
    body = 'statusCode: ' + str(res.status_code)

    return {
        'statusCode': 200,
        'body': body
    }
Response
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'requests'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "レスポンスID",
  "stackTrace": []
}

Layerを追加する

下記の公式ドキュメントを参考にLayerを自作して追加することもできるが、手間がかかるので簡単な方法を紹介する

下記Githubページから自分の条件に合ったページに遷移して、必要なライブラリのARNをコピーする(importしたライブラリがない場合は上記のドキュメントでやる)

今回の例ではPython 3.9ap-northeast-1リージョンなので以下のページからコピーする

image.png

コピーできたらコンソールのレイヤーを追加からARNを指定を選び、先ほどコピーしたARNを貼り付けて追加をクリック

image.png

再度実行してみる

エラーが解消され実行できていることが分かる

Response
{
  "statusCode": 200,
  "body": "statusCode: 200"
}

参考

17
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?