Estamos planeando migrar uno de nuestros sistemas de carga y cambio de tamaño de imágenes a la nube de AWS.
Solución propuesta
1.El usuario carga archivos en AWS s3.
S3 upload Invoca una función lambda en AWS lambda que cambiará el tamaño a un tamaño específico (por ejemplo, 250*250) y lo colocará en otro depósito s3.
tenemos una opción para que el usuario pueda ver la imagen redimensionada y el botón aprobar.
Dado que la imagen de carga y el cambio de tamaño son dos entidades separadas, no hay forma de identificar si la imagen recortada es correcta o fallida.
función lambda
function cropImage(objectKey){ //do resize here if(success){ //need to the objectKey in the php function } } Entonces, ¿hay alguna forma de comunicarse desde la función aws lambda a php?
Hay un enfoque que usamos para nuestro sistema. Los usuarios cargan sus archivos a través de la interfaz de usuario o una extensión de nuestro sistema. El sistema maneja el archivo y lo carga en S3. Después de cargar el archivo, el sistema llama a AWS Lambda y pasa metainformación, como el punto de enlace de la API donde devolver los resultados. Cambiamos el tamaño de cada imagen, recopilamos los datos y enviamos un JSON al punto final. Por supuesto, es un poco más complicado que simplemente delegar todo el trabajo a AWS, pero es un enfoque dinámico que le permite ejecutar su sistema desde cualquier servidor con una IP pública.
Si solo hay un servidor, ¿por qué no mantener las configuraciones del servidor en Lambda? Hay Env vars disponibles para configurar. En este caso, necesita un punto final o un patrón de nomenclatura predeterminado para todas las imágenes redimensionadas.