AWS Lambda es un servicio de serverless proporcionado por Amazon Web Services, AWS. que permite ejecutar código sin necesidad de aprovisionar, configurar ni administrar servidores.
Requisitos previos
Se necesitas tener instalado
PHP 8.2+.
Composer.
Node.js, para Serverless Framework.
Cuenta de AWS configurada.
Instalar las herramientas globales:
npm install -g serverless
composer global require bref/bref # opcional
Crear el proyecto base
mkdir proyecto-lambda
cd proyecto-lambda
composer require bref/bref
require __DIR__ . '/../vendor/autoload.php';
use App\Router;
$router = new Router();
$router->dispatch($_SERVER['REQUEST_URI']);
src/Router.phpphp
<?php
namespace App;
class Router
{
public function dispatch(string $uri)
{
$path = parse_url($uri, PHP_URL_PATH);
match ($path) {
'/fecha' => (new Controllers\FechaController())->handle(),
'/mensaje' => (new Controllers\MensajeController())->handle(),
default => $this->notFound()
};
}
private function notFound()
{
http_response_code(404);
echo json_encode(['error' => 'Ruta no encontrada']);
}
}
src/Controllers/FechaController.php
namespace App\Controllers;
class FechaController
{
public function handle()
{
header('Content-Type: application/json');
echo json_encode([
'fecha' => date('Y-m-d H:i:s'),
'timezone' => date_default_timezone_get()
]);
}
}
src/Controllers/MensajeController.phpphp
namespace App\Controllers;
class MensajeController
{
public function handle()
{
header('Content-Type: application/json');
echo json_encode([
'mensaje' => 'Bienvenido a mi API en Lambda',
'autor' => 'Tu Nombre'
]);
}
}