概要
外部ライブラリを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.9
、ap-northeast-1
リージョンなので以下のページからコピーする
コピーできたらコンソールのレイヤーを追加
からARNを指定
を選び、先ほどコピーしたARNを貼り付けて追加
をクリック
再度実行してみる
エラーが解消され実行できていることが分かる
Response
{
"statusCode": 200,
"body": "statusCode: 200"
}
参考