帶有 Python 後端的 Web 應用程序。我應該使用 AWS Lambda 嗎?
我想用 Python 後端建構一個 webapp。webapp 的前端只有一個簡單的輸入框,使用者可以在其中輸入地址。然後,在後端,我想從該地址的網頁中抓取內容,然後處理該數據。這種數據處理可能會變得非常繁重。
我對 Python 非常有經驗,儘管在 webapps、託管等方面,我的經驗為零。我在 namecheap 上購買了一個域名和主機,儘管我剛剛發現也許我不需要使用他們的主機,因為 /r/webhosting 中的某個人建議我改用 AWS。這是我被建議遵循的方法:
- 切換到 AWS(或 Azure)
- 創建 python lambda/function 來對這個請求做任何你想做的事情……
- 將 lambda 放在 api-gateway 後面
- 將 Cloudfront 放在 api-gateway 前面(可選但嘿..)
我已經看過將 namecheap 域指向 EC2 實例的教程。但是我該如何用 Lambda 來做這件事呢?是不是一樣的原理?你能給我指出任何可能教我如何處理這個問題的教程嗎?Lambda 實際上是解決此問題的最佳解決方案嗎?
謝謝!
創建 API 網關時,您將獲得一個端點 URL。因此,任何到達該端點的 HTTP 請求都會觸發相關的 lambda。端點看起來像這樣:
https://API-ID.execute-api.REGION.amazonaws.com/STAGE
然後,您可以通過路徑或查詢參數傳遞參數(要抓取的 URL)。
為方便起見,通過 cloudfront 封裝 API 網關,使 api URL 看起來像:
當談到您關於 Lambda 是否是最佳解決方案的問題時,我會說這取決於。Lambda 的一些明顯好處是無伺服器,如果您的應用程序設計為這樣做(https://docs.aws.amazon.com/lambda/latest/dg/scaling.html),它可以“無限”擴展,並讓服務得到照顧它,如果你不使用它,它不會花費你。
我還建議您查看限制(https://docs.aws.amazon.com/lambda/latest/dg/limits.html),我會專門研究功能超時(15分鐘),這對知道您是否打算進行比這更長的處理。
如果您決定確實使用 API Gateway/Lambda 組合,這裡有一些有用的連結:
如何使用 API 網關設置 Lambda:https ://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-lambda-integration.html )
使用自定義 DNS 名稱設置 API Gateway:https ://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html
將子域委託給 Route 53(AWS 的 DNS 服務)而不遷移父域: https ://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html