回答
你有很多東西具有持久性考慮,甚至在此之前,LAMBDA不支持PHP。我可能會看看支持PHP的Microsoft Azure函數,並確實擁有持久存儲。
雖然其他語言(如Go,Rust,Swift等)可以「包裝」以相對容易地在AWS Lambda中運行,但編譯以相同平臺爲目標並運行PHP的PHP有點不同(當然更加費力)。想想你需要的所有各種PHP模塊。而且,我無法想象性能會像Go二進制一樣好。
如果你可以用Phalcon框架做一些聰明的事情,並提出一個簡單的構建和部署過程,然後maayyyybee。
雖然,你可能需要真正徹底檢修像WordPress這樣的設計。由於項目時代的原因,它仍然使用了一些非常古老的約定,雖然這對於典型的PHP服務器來說都非常好,但從「便攜」PHP安裝的角度來看,它是一種不同的球類遊戲。
請記住,PHP會話也是依賴的,因此您需要將這些地方移到別處,因爲AWS Lambda缺乏持久性。你也許可以找到某種適用於Redis的WordPress插件?我不得不想像這樣的東西現在已經建成了......但是會有很多複雜性。
我會認真考慮使用Azure函數開始或使用Docker並放棄雲功能提供的定價模型。你仍然可以在那裏找到一些非常便宜和可擴展的主機。
我之前所做的是使用AWS ECS(Docker)和EFS(網絡存儲)來實現數據庫的持久性和RDS。雖然這與Lambda沒有相同的定價模式,但它仍然具有成本效益。您可以將您的ECS服務設置爲自動縮放。這樣你就可以運行最低限度,直到你需要更多。
我已經在這裏寫了更深入的文章:https://serifandsemaphore.io/how-to-host-wordpress-like-a-boss-b5993fcfbd8e#.n6fbnf8ii ...但基本上只是在Docker中運行WordPress並使用EFS卸載持久存儲問題的想法。如果你喜歡,你可以將許多拼圖碎片交換出來。使用託管在其他Docker服務或Compose中的數據庫或任何地方。例如,該部分不需要是RDS。即使您的存儲可以用不同的方式處理,但EFS工作得很好!關於EFS唯一要注意的是寫入速度。儘管大多數WordPress網站都被閱讀得很重。您的里程將根據您的需求而有所不同。
說實話,使用WordPress的最大代價很可能是您的數據庫,而您無法使用AWS Lambda解決問題。 – Tom
- 1. AWS lambda函數部署
- 2. AWS Lambda包部署
- 3. Aws Lambda:用numpy依賴項部署python函數
- 4. 如何獲取AWS中已部署的「Lambda」函數的「端點」?
- 5. 在AWS Lambda中無服務器部署通用函數包
- 6. sklearn不能在aws lambda函數中工作。部署包問題
- 7. 通過Cloudformation,CodeBuild和CodePipeline將AWS包部署到AWS Lambda
- 8. 使用Alexa Skill觸發器將AWS Lambda功能部署到AWS
- 9. AWS Lambda函數+ CloudWatch
- 10. Python - 創建aws lambda部署包
- 11. Maven部署包並上傳到AWS-Lambda
- 12. 將pytz導入AWS lambda函數
- 13. AWS lambda函數將來的調度
- 14. AWS Lambda - 將URL作爲GET參數從PHP轉換爲Java Lambda函數
- 15. GlassFish的部署失敗部署lambda函數
- 16. AWS lambda函數錯誤
- 17. AWS Lambda重命名函數
- 18. AWS lambda函數一生
- 19. AWS Lambda函數寫入S3
- 20. AWS Lambda函數限制
- 21. AWS lambda函數問題
- 22. AWS lambda函數上傳
- 23. Aws lambda函數失敗 - Python
- 24. AWS Lambda函數超時
- 25. AWS Lambda函數位置
- 26. 「打包的AWS Lambda函數
- 27. aws lambda vs azure函數
- 28. java中的AWS Lambda函數
- 29. 將同構反應入門工具包部署到AWS Lambda
- 30. Python AWS Lambda爲每個部署旋轉新連接到RDS
呃!謝謝Mark B. – PKK
WP現在沒有NodeJS API嗎?和RDBS服務串聯?這絕對可以完成,但這是一項巨大的努力。 – ilrein
@PKK你可以這樣做的一種方法是使用'WordPress XML-RPC API'有一個很好的節點包可以使用[scottgonzalez/node-wordpress](https://github.com/scottgonzalez/node-wordpress)例子:'var wordpress = require(「wordpress」); var client = wordpress.createClient({url:「my-site.com」, username:「admin」, password:「secret」 }); 客戶端。getPosts(function(error,posts){ response.setHeader(「Content-Type」,「text/json」); response.setHeader(「Access-Control-Allow-Origin」,「*」); response。 end(posts.length); }); ' – eMM