>  기사  >  백엔드 개발  >  AWS ServerLess 아키텍처에서 PHP를 실행하는 방법은 무엇입니까? Bref 런타임을 소개하는 부분

AWS ServerLess 아키텍처에서 PHP를 실행하는 방법은 무엇입니까? Bref 런타임을 소개하는 부분

DDD
DDD원래의
2024-10-07 22:11:30352검색

在本系列的上一篇文章中,我討論了無伺服器服務以及 Lambda 是什麼。現在是時候展示 PHP 腳本甚至完整應用程式如何在 AWS Lambda 上運行了。

在這篇文章中,我將解釋如何使用 Bref 運行時並使用 Symfony 演示應用程式和 Terraform 共享包含範例實現的儲存庫。

布雷夫來了!

獨立顧問兼 AWS 無伺服器英雄 Matthieu Napoli 在 2018 年推出了 Bref,此後,Bref 蓬勃發展,7 月份服務了超過 40,000,000,000 次調用,同比增長 300%。

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

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

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

我可以使用 Bref 運行什麼類型的應用程式?

幾乎任何類型的 PHP 應用程式都可以使用 Bref 運行。該文件提供了基於 Laravel 和 Symfony 的精彩教程。

調整現有應用程式非常容易(例如,Bref 提供了一個很好的bref/symfony-messenger 庫來調整Symfony Messenger 使用SQS 而不是其內部總線- 提醒:執行環境僅同時處理一個請求並且是短暫的,因此,將資料推送到短暫的內部總線會導致資料遺失)。

實際上,唯一的限制是您是否需要極端的反應性(例如 100% 的請求在 10 毫秒內滿足)。事實上,該框架增加了 230 毫秒的冷啟動。即便如此,正如本系列的上一篇文章所述,使用預先配置並發,您可以緩解這種情況(如果您想在不花費太多費用的情況下做到這一點,應用程式自動縮放是您的首選文檔)。

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

如何部署基於 Bref 的應用程式

上述 Symfony/Larevel 文件使用 Serverless 部署框架來部署 Bref 支援的 PHP 應用程式。

其他文章(此處和此處)探討了 CDK 作為其部署選項。

我是 Terraform 的粉絲,所以我很高興在下面分享一個使用 Terraform 作為部署選項的完全工作的存儲庫。

使用 Terraform 建立 PHP 應用程式並將其部署到 Lambda 的逐步方法

只要8個簡單步驟

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

GitHub 儲存庫

在以下 GitHub 儲存庫中,我分享了用於部署此應用程式的全功能設定:

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime 普桑圖斯 / php-無伺服器-lambda-bref-terraform

AWS Lambda 上的 PHP,帶有 Bref 框架,使用 Terraform 部署

此儲存庫展示如何

  • 偵測 Symfony 演示應用程式 使用 Bref 框架,為 PHP 提供 Lambda 運行時。
  • 使用 Terraform 部署應用程式。

部署

CLI를 사용하여 AWS에 로그인한 후 다음을 실행하세요.

terraform apply

data.sql 파일에는 Aurora 데이터베이스를 시드하는 데 필요한 데이터가 포함되어 있습니다. 요새를 사용하여 배포할 수 있습니다.

결과

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime


GitHub에서 보기


Lambda 웹 어댑터를 사용하여 Lambda에 PHP 코드를 배포하는 방법에 대한 다음 게시물을 기대해주세요!

위 내용은 AWS ServerLess 아키텍처에서 PHP를 실행하는 방법은 무엇입니까? Bref 런타임을 소개하는 부분의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.