[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
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.
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
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.
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
