如何在Laravel项目中轻松部署AWSLambda函数?使用hammerstone/sidecar可以!

可以通过以下地址学习 composer学习地址

在开发 laravel 项目时,我遇到了一个棘手的问题:如何在不增加复杂性的情况下,将非 phpLambda 函数集成到 laravel 应用中。我尝试过多种方法,但每次都感觉不够简便和高效。最终,我找到了 hammerstone/sidecar 这个库,它不仅简化了部署流程,还让 lambda 函数的执行变得异常简单。

hammerstone/sidecar 是一个 Laravel 包,旨在帮助开发者在 Laravel 应用中直接部署和执行 AWS Lambda 函数。它支持 Lambda 支持的所有运行时,包括 Node.JSpythonJava、.NET、ruby 等。你可以轻松地将这些函数集成到你的 Laravel 项目中,而无需处理复杂的服务器配置。

要安装 hammerstone/sidecar,只需运行以下 Composer 命令:

composer require hammerstone/sidecar

使用 hammerstone/sidecar,你需要创建一个 PHP 类和相应的 Lambda 函数文件。例如,如果你想使用 Node.js 在 Lambda 上生成博客文章的 og:image,你可以创建一个名为 OgImage 的 PHP 类:

namespace AppSidecar;  use HammerstoneSidecarLambdaFunction;  class OgImage extends LambdaFunction {     public function handler()     {         return 'lambda/image.handler';     }      public function package()     {         return [             'lambda',         ];     } }

然后,你需要创建一个 JavaScript 文件作为处理程序:

const {createCanvas} = require('canvas')  exports.handler = async function (event) {     const canvas = createCanvas(1200, 630)     const context = canvas.getContext('2d')      context.font = 'bold 70pt Helvetica'     context.textAlign = 'center'     context.fillStyle = '#3574d4'      context.fillText(event.text, 600, 170);      return canvas.toDataURL('image/jpeg'); }

接下来,你可以使用 Artisan 命令部署这个函数:

php artisan sidecar:deploy --activate

最后,你可以在 Laravel 应用中直接执行这个 Lambda 函数:

Route::get('/ogimage', function () {     return OgImage::execute([         'text' => 'PHP to JS and Back Again!'     ]); });

hammerstone/sidecar 的优势在于它简化了 Lambda 函数的部署和执行过程。你不需要担心服务器配置,只需专注于编写函数逻辑即可。这不仅提高了开发效率,还降低了维护成本。

总的来说,hammerstone/sidecar 在我的项目中表现出色,它让我能够轻松地将各种语言编写的 Lambda 函数集成到 Laravel 应用中。如果你也在寻找一种简便的方法来部署和执行 Lambda 函数,那么 hammerstone/sidecar 绝对值得一试。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享