3
我想在AWS Lambda函數中使用運行時版本的Python 3.6調用aws s3 sync
命令。我怎樣才能做到這一點?如何在AWS Lambda Python 3.6環境中運行aws-cli?
你爲什麼不只是使用包括boto3 SDK?
- boto3 does not have an equivalent to the
sync
command - boto3 does not automatically find MIME types( 「如果你不提供的ContentType到ExtraArgs什麼,到底內容類型將永遠是二進制/八位字節流」。)
- aws cli does automatically find MIME types(「默認情況下,當它被上載「)
的文件的mime類型推測
對於我的使用情況下,我覺得很有道理建築和財政,但我接受的替代品。 My Lambda function:
- 下載Git和雨果
- 下載my repository
- 運行雨果產生我的小(< 100頁)網站
- 上傳生成的文件到S3
眼下,我可以在大約1-2秒內在1536 MB(最強大的)Lambda函數上完成上述所有操作。這個功能只有在我改變我的網站時纔會觸發,所以運行起來很便宜。
也許它已經被安裝在lambda環境?
在編寫這本書的時候,其實不然。
不幸的是,這個帖子中的方法在這種情況下不起作用。我會在我的問題上詳細闡述我已經嘗試了什麼。 AWS CLI仍未安裝在Python Lambda實例上,儘管我還沒有嘗試其他環境。 – pjgranahan
引用的文章顯示瞭如何使用Lambda函數打包AWS CLI。 –
謝謝你的幫助約翰。你的評論促使我重新審視這篇文章,並利用博客的方法開展工作。我做了兩件關鍵的事情,其他人應該注意: 1)我試圖在亞馬遜Linux上構建aws-cli以努力匹配Lambda環境。這失敗了奇怪的PyYaml錯誤,但在Ubuntu上構建完美無缺。 2)我沒有意識到Python 2.7在Python 3.6 Lambda環境中仍然可用,並且我試圖將博客中給出的腳本改編爲Python 3.6。我認爲這種方法最終可能奏效,但我現在已經放棄了。 – pjgranahan