AWS ServerLess 아키텍처에서 PHP를 실행하는 방법은 무엇입니까? Bref 런타임을 소개하는 부분
Oct 07, 2024 pm 10:11 PM在本系列的上一篇文章中,我討論了無伺服器服務以及 Lambda 是什麼。現在是時候展示 PHP 腳本甚至完整應用程式如何在 AWS Lambda 上運行了。
在這篇文章中,我將解釋如何使用 Bref 運行時並使用 Symfony 演示應用程式和 Terraform 共享包含範例實現的儲存庫。
布雷夫來了!
獨立顧問兼 AWS 無伺服器英雄 Matthieu Napoli 在 2018 年推出了 Bref,此後,Bref 蓬勃發展,7 月份服務了超過 40,000,000,000 次調用,同比增長 300%。
Bref 是如何運作的?
Bref 是自訂 Lambda 運行時。或者更確切地說是運行時,因為它有三種風格。
- 第一個設計用於運行 Web 應用程式。 Bref 將捕獲 API 閘道事件並將其轉換為 FastCGI 請求(與 Apache 的 httpd 或 nginx 等 Web 伺服器向 PHP FPM 進程發出的請求類型相同);它還為您執行 PHP FPM 進程。這樣,您的應用程式幾乎可以完全不修改(您只需要導入 bref/bref 編譯器包)。所有標準 PHP 功能(例如使用 $_POST 魔術變數存取 Web 請求內容)都可以正常運作。
- 第二個被設計為非同步運行。 AWS Lambda 函數可以處理所有類型的 AWS 產生或自訂事件。在這種情況下,您的 PHP 函數需要使用處理程序方法編寫,也就是採用 $event 作為參數的 PHP 可呼叫函數。
- 第三個執行階段可以執行 CLI 指令,例如 php bin/consoledoctrine:database:create
我可以使用 Bref 運行什麼類型的應用程式?
幾乎任何類型的 PHP 應用程式都可以使用 Bref 運行。該文件提供了基於 Laravel 和 Symfony 的精彩教程。
調整現有應用程式非常容易(例如,Bref 提供了一個很好的bref/symfony-messenger 庫來調整Symfony Messenger 使用SQS 而不是其內部總線- 提醒:執行環境僅同時處理一個請求並且是短暫的,因此,將資料推送到短暫的內部總線會導致資料遺失)。
實際上,唯一的限制是您是否需要極端的反應性(例如 100% 的請求在 10 毫秒內滿足)。事實上,該框架增加了 230 毫秒的冷啟動。即便如此,正如本系列的上一篇文章所述,使用預先配置並發,您可以緩解這種情況(如果您想在不花費太多費用的情況下做到這一點,應用程式自動縮放是您的首選文檔)。
如何部署基於 Bref 的應用程式
上述 Symfony/Larevel 文件使用 Serverless 部署框架來部署 Bref 支援的 PHP 應用程式。
其他文章(此處和此處)探討了 CDK 作為其部署選項。
我是 Terraform 的粉絲,所以我很高興在下面分享一個使用 Terraform 作為部署選項的完全工作的存儲庫。
使用 Terraform 建立 PHP 應用程式並將其部署到 Lambda 的逐步方法
只要8個簡單步驟
GitHub 儲存庫
在以下 GitHub 儲存庫中,我分享了用於部署此應用程式的全功能設定:
普桑圖斯
/
php-無伺服器-lambda-bref-terraform
AWS Lambda 上的 PHP,帶有 Bref 框架,使用 Terraform 部署
此儲存庫展示如何
- 偵測 Symfony 演示應用程式 使用 Bref 框架,為 PHP 提供 Lambda 運行時。
- 使用 Terraform 部署應用程式。
部署
CLI를 사용하여 AWS에 로그인한 후 다음을 실행하세요.
1 |
|
data.sql 파일에는 Aurora 데이터베이스를 시드하는 데 필요한 데이터가 포함되어 있습니다. 요새를 사용하여 배포할 수 있습니다.
결과
Lambda 웹 어댑터를 사용하여 Lambda에 PHP 코드를 배포하는 방법에 대한 다음 게시물을 기대해주세요!
위 내용은 AWS ServerLess 아키텍처에서 PHP를 실행하는 방법은 무엇입니까? Bref 런타임을 소개하는 부분의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
