編輯:
所以 lambda 函式專案可以作為 zip 檔案上傳。
我認為這個 lambdazip.sh 是用于壓縮專案的 shell 腳本。我一直在通過 MacOS 上的 Finder 手動壓縮專案。
在我 cd 到我的 /bin 之后,我運行
sh lambdazip.zip
但我收到以下錯誤:
stephenstilwell@Stephens-MacBook-Air bin % sh lambdazip.sh
lambdazip.sh: line 6: cd: /lib/python2.7/site-packages/: No such file or directory
zip warning: name not matched: pypdftk*
zip error: Nothing to do! (/Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip)
zip warning: name not matched: bin
zip error: Nothing to do! (try: zip -r /Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip . -i bin)
zip warning: name not matched: boost*
zip warning: name not matched: pdf_surveys
zip error: Nothing to do! (/Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip)
所以我得到了一個壓縮檔案,沒有關于如何處理代碼庫的真正說明或檔案。
我的任務是在 AWS 上設定這個專案。
使用的 AWS 服務將是 Lambda、S3、Api 網關、簡單電子郵件服務。
據我目前所知,我認為這個 .sh 檔案可能已用于在部署到 AWS Lambda 之前在本地測驗 lambda 函式,但我不確定。
這個檔案需要上傳到lambda函式嗎?
它屬于 Lambda 層嗎?
它的目的是什么,為什么過去的開發人員使用它?

lambdazip.sh
#!/bin/bash
PYTHON_PATH=$VIRTUAL_ENV/..
BASE_PATH=$PWD
cd $VIRTUAL_ENV/lib/python2.7/site-packages/
zip -x "*pyc" -r9 $BASE_PATH/dist/cl-boost.zip pypdftk*
cd $BASE_PATH
zip -r $BASE_PATH/dist/cl-boost.zip bin
cd $BASE_PATH
zip -x "*pyc" -r9 $BASE_PATH/dist/cl-boost.zip boost* pdf_surveys
uj5u.com熱心網友回復:
從我看到lambdazip.sh的用于從專案的虛擬環境和專案的基本路徑中打包依賴項。
您可能需要做的是VIRTUALENV通過執行類似python2.7 -m virtualenv或以下操作來啟用專案:啟用 VIRTUALENV。之后,您可能希望使用pip. 之后您應該能夠lambdazip.sh成功運行。
uj5u.com熱心網友回復:
它看起來像是 AWS Lambda 函式創建的助手。
如果 Lambda 僅使用核心 Python 庫,則可以僅將其代碼復制/粘貼到 AWS Lambda Web UI 中的代碼編輯器。
但是如果你需要一些額外的依賴,你有兩個選擇:
- 將依賴項放入所謂的 AWS Lamda 層(然后您可以通過 UI 復制/粘貼函式代碼,另外在 Lambda 設定中,您必須將層連接到函式)
- 將所有內容(函式及其依賴項)放入 ZIP 存檔并將其作為 Lambda 函式上傳
如果您選擇第二個選項,您將無法在可視化編輯器中調整代碼(這在除錯期間可能很有用)。
我建議lambdazip.sh使用函式和依賴項創建 ZIP 檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360529.html
標籤:Python 亚马逊网络服务 贝壳 aws-lambda 嘘
上一篇:期間發生內部錯誤:“將函式代碼上傳到Lambda”javax/xml/bind/JAXBException
下一篇:IAM用戶無法洗掉物件
