前提・実現したいこと
LambdaでOpenCVを使用したいと考えております。
Amazon Linux上でlambda環境を作成し、S3にアップロードしてLambda上へアップロードという形を考えています。
以下のサイトの「OpenCVを使う場合」の手順通りに作業しています。
https://blog.labo.appirits.com/aws-lambda-opencv/
しかし、最終的にLambda上でアップロードし、テストを行うと以下のようなエラーが発生します。
エラーが発生せず、OpenCVを正常に動かす方法についてお教えいただきたいです。
発生している問題・エラーメッセージ
Lambdaの「関数」のページから「テスト」タブから「呼び出し」ボタンを押してテストを行うとエラー発生
Unable to import module 'lambda_function': No module named cv2
START RequestId: 641a9986-fcb8-48b1-8602-330f9597e057 Version: $LATEST Unable to import module 'lambda_function': No module named cv2 END RequestId: 641a9986-fcb8-48b1-8602-330f9597e057 REPORT RequestId: 641a9986-fcb8-48b1-8602-330f9597e057 Duration: 0.38 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 34 MB Init Duration: 7.87 ms
該当のソースコード
Pythonのlambda_function.pyのソースコード
import cv2 def lambda_handler(event, context): print "OpenCV installed version:", cv2.__version__ return "It works!" if __name__ == "__main__": lambda_handler(42, 42)
試したこと
・https://github.com/aeddi/aws-lambda-python-opencv を使用
・AWS EC2でAmazon Linuxで操作している(インスタンス生成してから端末上で以下のようなコマンドを実行済み)
yum update -y yum install -y git cmake gcc-c++ gcc python-devel chrpath cd /tmp wget https://github.com/aeddi/aws-lambda-python-opencv/archive/master.zip unzip master.zip chmod 777 aws-lambda-python-opencv-master cd aws-lambda-python-opencv-master su -c './build.sh' ec2-user cd lambda_package zip -r ../lambda-package.zip * aws s3 cp ../lambda-package.zip s3://nintendoswitch-game-thumbnail
・アップロードしたS3のURLを「コード」タブに貼り付けてLambda上へアップロード
・デプロイパッケージのフォルダ構造
$ tree lambda-package lambda-package ├── cv2 │ ├── LICENSE-3RD-PARTY.txt │ ├── LICENSE.txt │ ├── __init__.py │ ├── __init__.pyc │ ├── __pycache__ │ │ └── __init__.cpython-36.pyc │ ├── cv2.cpython-36m-darwin.so │ ├── data │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ └── __init__.cpython-36.pyc │ │ ├── haarcascade_eye.xml │ │ ├── haarcascade_eye_tree_eyeglasses.xml │ │ ├── haarcascade_frontalcatface.xml │ │ ├── haarcascade_frontalcatface_extended.xml │ │ ├── haarcascade_frontalface_alt.xml │ │ ├── haarcascade_frontalface_alt2.xml │ │ ├── haarcascade_frontalface_alt_tree.xml │ │ ├── haarcascade_frontalface_default.xml │ │ ├── haarcascade_fullbody.xml │ │ ├── haarcascade_lefteye_2splits.xml │ │ ├── haarcascade_licence_plate_rus_16stages.xml │ │ ├── haarcascade_lowerbody.xml │ │ ├── haarcascade_profileface.xml │ │ ├── haarcascade_righteye_2splits.xml │ │ ├── haarcascade_russian_plate_number.xml │ │ ├── haarcascade_smile.xml │ │ └── haarcascade_upperbody.xml │ ├── libopencv_calib3d.so.3.2 │ ├── libopencv_core.so.3.2 │ ├── libopencv_features2d.so.3.2 │ ├── libopencv_flann.so.3.2 │ ├── libopencv_highgui.so.3.2 │ ├── libopencv_imgcodecs.so.3.2 │ ├── libopencv_imgproc.so.3.2 │ ├── libopencv_ml.so.3.2 │ ├── libopencv_objdetect.so.3.2 │ ├── libopencv_photo.so.3.2 │ ├── libopencv_shape.so.3.2 │ ├── libopencv_stitching.so.3.2 │ ├── libopencv_superres.so.3.2 │ ├── libopencv_video.so.3.2 │ ├── libopencv_videoio.so.3.2 │ └── libopencv_videostab.so.3.2 └── lambda_function.py 4 directories, 42 files
補足情報(FW/ツールのバージョンなど)
Python2.7
EC2(Amazon Linux)
回答1件
あなたの回答
tips
プレビュー