AWS Cloud9からPython Lambdaをデプロイするときに自作ライブラリを含める
pipでインストールできるライブラリを含める
例としてnumpyをインストールしてみます。
ec2-user:~/environment $ cd MyApp/
ec2-user:~/environment/MyApp $ ls -l
total 16
-rw-r--r-- 1 ec2-user ec2-user 0 Jun 11 13:39 __init__.py
drwxr-xr-x 2 ec2-user ec2-user 4096 Jun 11 13:42 MyFunc
-rw-r--r-- 1 ec2-user ec2-user 13 Jun 11 13:39 requirements.txt
-rw-r--r-- 1 ec2-user ec2-user 449 Jun 11 13:39 template.yaml
drwxr-xr-x 6 ec2-user ec2-user 4096 Jun 11 13:39 venv
ec2-user:~/environment/MyApp $ python3 -m pip install --target=./ numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/b3/a9/b1bc4c935ed063766bce7d3e8c7b20bd52e515ff1c732b02caacf7918e5a/numpy-1.18.5-cp36-cp36m-manylinux1_x86_64.whl (20.1MB)
100% |████████████████████████████████| 20.1MB 62kB/s
Installing collected packages: numpy
Successfully installed numpy-1.18.5
You are using pip version 9.0.3, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ec2-user:~/environment/MyApp $ ls -l
total 28
-rw-r--r-- 1 ec2-user ec2-user 0 Jun 11 13:39 __init__.py
drwxr-xr-x 2 ec2-user ec2-user 4096 Jun 11 13:46 MyFunc
drwxrwxr-x 17 ec2-user ec2-user 4096 Jun 11 13:45 numpy
drwxrwxr-x 2 ec2-user ec2-user 4096 Jun 11 13:45 numpy-1.18.5.dist-info
drwxrwxr-x 2 ec2-user ec2-user 4096 Jun 11 13:45 numpy.libs
-rw-r--r-- 1 ec2-user ec2-user 13 Jun 11 13:39 requirements.txt
-rw-r--r-- 1 ec2-user ec2-user 449 Jun 11 13:39 template.yaml
drwxr-xr-x 6 ec2-user ec2-user 4096 Jun 11 13:39 venv
次のコードをデプロイ、実行してみます。
import numpy as np
def lambda_handler(event, context):
print(np.array([1, 2, 3]))
return ""
自作ライブラリを含める
てなわけで関数ディレクトリと同じ階層に自作ライブラリを置けば使えそうです。ec2-user:~/environment/MyApp $ mkdir MyLib
ec2-user:~/environment/MyApp $ touch MyLib/__init__.py
ec2-user:~/environment/MyApp $ touch MyLib/MyUtil.py
import numpy as np
def print_numpy():
print(np.array([1, 2, 3]))
import MyLib.MyUtil as util
def lambda_handler(event, context):
util.print_numpy()
return ""
ディスカッション
コメント一覧
まだ、コメントがありません