如何在AWS Serverless架構上運行PHP?介紹 Bref 運行時的部分

DDD
發布: 2024-10-07 22:11:30
原創
337 人瀏覽過

Dans l'article précédent de cette série, j'ai discuté des services sans serveur et de ce qu'est Lambda. Il est maintenant temps de montrer comment des scripts PHP ou même des applications complètes peuvent s'exécuter sur AWS Lambda.

Dans cet article, j'explique comment utiliser le runtime Bref et partager un référentiel contenant un exemple d'implémentation, en utilisant l'application de démonstration Symfony et Terraform.

Voilà Bref !

Matthieu Napoli, consultant indépendant et AWS Serverless Hero, a présenté Bref en 2018 et, depuis lors, Bref a prospéré, traitant plus de 40 000 000 000 d'invocations en juillet, avec une croissance de 300 % d'une année sur l'autre.

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

Comment fonctionne Bref ?

Bref est un runtime Lambda personnalisé. Ou plutôt les durées d'exécution, car il se décline en trois versions.

  • Le premier est conçu pour exécuter des applications Web. Bref capturera les événements API Gateway et les convertira en requêtes FastCGI (le même type de requêtes que les serveurs Web comme httpd ou nginx d'Apache feront au processus PHP FPM) ; il exécute également le processus PHP FPM pour vous. De cette façon, votre application peut rester presque totalement inchangée (il vous suffit d'importer le package bref/bref composer). Toutes les fonctionnalités PHP standard, telles que l'accès au contenu des requêtes Web avec la variable magique $_POST, fonctionnent.
  • Le second est conçu pour fonctionner de manière asynchrone. Les fonctions AWS Lambda peuvent traiter toutes sortes d'événements générés par AWS ou personnalisés. Dans ce cas, votre fonction PHP doit être écrite avec une méthode de gestionnaire, c'est-à-dire un appelable PHP qui prend $event comme argument.
  • Un troisième runtime permet d'exécuter une commande CLI, telle que php bin/console doctrine:database:create

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

Quel type d'application puis-je exécuter avec Bref ?

Presque tous les types d'applications PHP fonctionnent avec Bref. La documentation propose de jolis tutoriels basés sur Laravel et Symfony.

Adapter une application existante est assez simple (par exemple, Bref fournit une jolie bibliothèque bref/symfony-messenger pour adapter Symfony Messenger pour utiliser SQS plutôt que son bus interne - rappel : les environnements d'exécution ne gèrent qu'une seule requête simultanément et sont éphémères, donc pousser les données vers un bus interne de courte durée est la recette de la perte de données).

La seule limitation, vraiment, est si vous avez besoin d'une réactivité extrême (comme 100% de vos requêtes servies en 10 ms). En effet, le framework ajoute 230 ms de démarrage à froid. Néanmoins, comme indiqué dans l'article précédent de cette série, en utilisant la simultanéité provisionnée, vous pouvez atténuer ce problème (et si vous voulez le faire sans trop dépenser, la mise à l'échelle automatique des applications est votre documentation de référence).

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

Comment déployer une application basée sur Bref

Les documentations Symfony/Larevel mentionnées ci-dessus utilisent le framework de déploiement sans serveur pour déployer des applications PHP basées sur Bref.

D'autres articles (ici et ici) explorent le CDK comme option de déploiement.

Je suis plutôt un fan de Terraform, je suis donc heureux de partager ci-dessous un référentiel entièrement fonctionnel utilisant Terraform comme option de déploiement.

Approche étape par étape pour créer et déployer une application PHP sur Lambda à l'aide de Terraform

Cela ne prend que 8 étapes simples

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

Un dépôt GitHub

Dans le référentiel GitHub suivant, je partage une configuration entièrement fonctionnelle pour déployer cette application :

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime psantus / php-serverless-lambda-bref-terraform

PHP sur AWS Lambda avec framework Bref, déployé avec Terraform

Ce référentiel montre comment

  • instrumenter une application de démonstration Symfony avec le framework Bref, qui fournit un runtime Lambda pour PHP.
  • déployer l'application avec Terraform.

Déploiement

使用 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 Web Adaptor 在 Lambda 上部署 PHP 程式碼!

以上是如何在AWS Serverless架構上運行PHP?介紹 Bref 運行時的部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!