Función AWS: Cómo configurarla basada en PHP

función aws

Cómo configurar una función AWS Lambda basada en PHP

En esta publicación, voy a crear una función AWS lambda que se ejecuta en un tiempo de ejecución de PHP. El proceso se simplifica usando Bref. Bref es un proyecto de código abierto que brinda soporte completo para PHP y sus marcos a AWS Lambda.


Requisitos previos: Instale el compositor localmente y genere sus claves de acceso de AWS.

Los pasos son:

1. Instalar y configurar Serverless Framework

npm i -g serverlessserverless config credentials — provider aws — key <key> — secret <secret>

2. El compositor instala Bref

mdkir serverless-php-lambdacd serverless-php-lambda
composer require bref/bref

3. Inicializar el proyecto Bref

vendor/bin/bref initSelect Event-driven function belowWhat kind of lambda do you want to create? (you will be able to add more functions later by editing `serverless.yml`) [Web application]:
  [0] Web application
  [1] Event-driven function

En este punto, se crea un archivo serverless.yml, como se muestra a continuación.

service: app

provider:
    name: aws
    region: eu-west-2
    runtime: provided.al2

plugins:
    - ./vendor/bref/bref

functions:
    php-lambda:
        handler: index.php
        description: ''
        layers:
            - ${bref:layer.php-73}

# Exclude files from deployment
package:
    patterns:
        - '!tests/**'

El yml sin servidor anterior indica que estoy implementando una función lambda llamada php-lambda que se ejecuta en PHP 7.3 en una máquina Amazon Linux 2 (provisto.al2) en AWS Lambda.

Tenga en cuenta que el nombre de la función de Lambda, las versiones de PHP y la región de AWS se pueden actualizar antes de la implementación. Para obtener más versiones de PHP compatibles, visite bref-runtimes para obtener más detalles.

Además, se creó un index.php en la inicialización. Modifique el archivo index.php para manejar su caso de uso específico.

4. Implementar en AWS y probar

serverless deploy

La siguiente imagen muestra el código PHP de muestra que se ejecuta en AWS Lambda.

5. Agregar extensiones de PHP (opcional)

Para este ejemplo, agregaremos la extensión PHP Imagick en los siguientes pasos secundarios;

RUN composer require bref/extra-php-extensionsUPDATE plugins in serverless.yml file and add — ./vendor/bref/extra-php-extensionsUPDATE layers in serverless.yml file and add ${bref-extra:imagick-php-73}save and redeploy and retest

El nuevo serverless.yml es como se muestra a continuación.

service: app

provider:
    name: aws
    region: eu-west-2
    runtime: provided.al2

plugins:
    - ./vendor/bref/bref
    - ./vendor/bref/extra-php-extensions

functions:
    php-lambda:
        handler: index.php
        description: ''
        layers:
            - ${bref:layer.php-73}
            - ${bref-extra:imagick-php-73}

# Exclude files from deployment
package:
    patterns:
        - '!tests/**'

Bref admite otras extensiones de PHP. Consulte aquí para obtener más detalles.

Enhorabuena por haber llegado hasta aquí. Si ha seguido los pasos, debe tener una función AWS lambda que se ejecuta en un tiempo de ejecución de PHP.


¡Gracias por leer! Si encuentra esto útil, me encantaría recibir sus comentarios constructivos más abajo.

Recent Post