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.
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.
Bref est un runtime Lambda personnalisé. Ou plutôt les durées d'exécution, car il se décline en trois versions.
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).
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.
Cela ne prend que 8 étapes simples
Dans le référentiel GitHub suivant, je partage une configuration entièrement fonctionnelle pour déployer cette application :
Ce référentiel montre comment
Selepas log masuk ke AWS dengan CLI anda, jalankan sahaja
terraform apply
Fail data.sql mengandungi data yang diperlukan untuk menyemai pangkalan data Aurora. Anda boleh menggunakan ia dengan benteng.
Nantikan siaran seterusnya saya tentang Cara menggunakan kod PHP pada Lambda menggunakan Penyesuai Web Lambda!
Atas ialah kandungan terperinci Bagaimana untuk menjalankan PHP pada seni bina AWS ServerLess? Bahagian memperkenalkan masa jalan Bref. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!