質問: pymysql.connect(DB_HOST, user=DB_USER, passwd=DB_PASSWORD, db=DB_NAME, connect_timeout=5) ※↑「pymysql」が見つからずにエラー except Exception as e: print("Fail connecting to RDS mysql instance") print(e) sys.exit() ``` ■エラー内容 [ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'pymysql'
回答: 私も先ほどまで解らず調べていたので共有します こちらが参考になりました ■フロー これだけでした。 lambdaがなんでもかんでもライブラリを持っているわけではないので、ユーザ側で準備してUPする流れとなります。 ec2(Amazon Linux)でpymysqlをインストールする ※他のもので出来るかまでは調べていないです。 ↓ インストールしたフォルダの中身をzip化してlambdaにUpする ■具体的な手順 1.ec2(Amazon Linux)でpymysqlをインストールする ``` # lambdaにUpするファイルを格納するフォルダを作成します mkdir lambda cd lambda # フォルダ内にpymysqlをインストールします。 # ※ec2にpythonがインストールされている前提です # ※pythonのバージョンに応じてpipコマンドを使い分けてください pip3 install pymysql -t . # zipをUpすると元合ったファイルが消えてしまうので、lambda_functionもここで作成します vi lambda_function.py # アップロードするzipを作成します zip -r app.zip * ``` 2.インストールしたフォルダの中身をzip化してlambdaにUpする コマンドでもできるようなのですが、私は面倒なのでAWSコンソールからやりました。 ・zipファイルをローカルPCにダウンロードします ・AWSコンソールのlambda画面で「アクション」をクリックすると「zipファイルをアップロード」とありますので、そちらをクリックして作成したzipをUploadします。 !![AWSコンソール](8305c8987ec507caf538aa55a1012077.jpeg)