Sidecar packages, deploys, and executes AWS Lambda functions from your Laravel application.
Sidecar is a package by the Hammerstone team that takes the pain out of the packaging, deploying, and executing of AWS Lambda functions from your Laravel application.
Sidecar supports both Laravel 7 and 8 and requires PHP 7.2 or newer.
Laravel Vapor brought the power of serverless to Laravel. Using Vapor, you can run your plain ol’ Laravel apps on a serverless platform and get incredible speed, security, and reliability.
Or maybe you want to run a single Ruby script without configuring Ruby on your server. Or Java. Or even Powershell for some reason?
You can use any of the runtimes supported by Lambda:
- Node.js 14
- Node.js 12
- Node.js 10
- Python 3.8
- Python 3.7
- Python 3.6
- Python 2.7
- Ruby 2.7
- Ruby 2.5
- Java 11
- Java 8
- Go 1.x
- .NET Core 3.1
- .NET Core 2.1
Sidecar comes with a
sidecar:configure command that interactively walks you through setting up the correct permissions in AWS so that you don’t have to mess around in the IAM UI.
Once you have your credentials configured, making your first Lambda requires only two things:
- A PHP class
- The files you want to be deployed to Lambda
Let’s assume we’re going to use Node to generate an image. Your function class could look like this:
With your function configured, you can deploy and activate it with a simple command:
php artisan sidecar:deploy --activate
The above command creates your Lambda function on AWS and prepares it for use.
You can execute this function anywhere in your Laravel application simply by calling
execute on the class, passing any data you want to the Lambda function.
$image = GenerateImage::execute([ 'text' => 'This image was generated on Lambda!' ]);
This article is a very brief overview of what Sidecar can do. Sidecar also handles:
- Separate environments
- Async execution
- Multiple, concurrent async execution
- Configurable memory, timeout, and runtime per function
- Separate deploy and activate steps for zero downtime or version drift
- Retrieving logs and timings per execution
- Returning Lambda execution results directly to the browser as Laravel responses
To read the full documentation see https://hammerstone.dev/sidecar/docs or visit the GitHub repository at https://github.com/hammerstonedev/sidecar.
Please note that this is a v0.1.0 release. Issues are being addressed quickly, and features are being added as they move towards a 1.0 release. Feel free to reach out to the author directly on Twitter at twitter.com/aarondfrancis.
Credit: Source link