Nuevo en Symfony 5.1: Soporte para Async AWS

El SDK oficial de AWS para PHP simplifica la integración de los servicios de Amazon AWS (Amazon S3, Amazon DynamoDB, etc.) en tus aplicaciones PHP. Este SDK proporciona todas las funcionalidades imaginables, ya que soporta más de 200 servicios AWS (usando más de 8.000 métodos PHP).

El proyecto Async AWS es una refactorización no oficial de esa SDK. Solo incluye soporte para los servicios más utilizados (unos 7, frente a los 200 del SDK) y se distribuye en paquetes independientes (añadir por ejemplo soporte para S3 requiere 0.6 MB frente a las 22 MB del SDK).

Sin embargo, la mayor diferencia es que por defecto Async AWS realiza todas las llamadas a las API de manera asíncrona (ya que utiliza por debajo el cliente HTTP de Symfony).

Gracias al reciente trabajo realizado por Tobias Nyholm y Jérémy Derussé (15 semanas de trabajo, 500 pull requests, decenas de miles de líneas de código) Async AWS ha publicado su versión 1.0.0 estable. En Symfony 5.1 hemos decidido empezar a utilizar Async AWS en algunos componentes.

En el componente Mailer, hemos reemplazado las clases SesApiTransport y SesHttpTransport por SesApiAsyncAwsTransport y SesHttpAsyncAwsTransport, que se crean al instalar el siguiente paquete:

$ composer require async-aws/ses

Además de eliminar mucha complejidad relacionada con la firma de las peticiones HTTP, este cambio añade las siguientes funcionalidades:

  • Autenticación mediante .aws/config.ini, Instance profile y WebIdentity.
  • Uso de Signature V4 (tal y como recomienda el SDK oficial).
  • Total compatibilidad con la API oficial (las clases se generan a partir de las interfaces del SDK oficial).

De la misma manera, el componente Messenger se ha actualizado para usar Async AWS cuando se usa el servicio Amazon SQS. Este cambio también elimina la mayor parte de la complejidad relacionada con la autenticación y el streaming y mantiene la integración con el cliente HTTP de Symfony.

Esta funcionalidad fue contribuida por Jérémy Derussé y Tobias Nyholm en el pull request #35992 y #36094.


Fuente: New in Symfony 5.1: Async AWS Support

Comentarios

Publicada el

4 de mayo de 2020

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.