本文紀錄如何在 AWS Lambda 上安裝並使用 Python 第三方套件,步驟包含在本機先建立套件的 zip 檔,以及新增 Layer 到 Lambda 函式上
Lambda 函式預設無法使用 Python 第三方套件
我在 AWS Lambda 撰寫好函式(或是使用 $ zip <dest_filename>.zip
<py_file>
.py 製作 python zip 檔後上傳函式),函式中有使用到 requests 這個套件,執行 Test 時會顯示 No module named 'requests'
,原因就是 AWS Lambda 預設是沒有 requests 這個套件的,需要另外上傳套件檔,以下是解決方法。
- 安裝所需套件至 python 資料夾
- 打包 python 套件資料夾為 zip 檔
- 建立新 Layer
- 將 Layer 新增至函式
前兩步驟是在本機完成,後兩步驟是在 AWS 上進行,接下來將詳細解說各步驟。
1. 安裝所需套件至 python 資料夾
AWS 官方文件說額外的套件必須使用 「python」 這個名稱的資料夾打包,所以要在專案資料夾內建立一個 python 資料夾,並將套件安裝到裡面,詳細 Terminal 指令如下:
$ mkdir python
$ cd python
# 安裝單一套件
$ pip install --target . requests
# 一次安裝多個套件
$ pip install --target . -r requirements.txt
