Me gustaría ejecutar una operación por lotes en la que mi secuencia de comandos llame a la API de Pagespeed Insights para obtener una lista de URL, devuelva el JSON y lo guarde en Dynamo. Cada respuesta de API tiene un promedio de entre 20 y 30 segundos, por lo que tal vez 30 URL como máximo antes de que mi Lambda se agote en 15 minutos como máximo. Eventualmente tendré la lista de URL en quizás 200+.
¿Cuál es el mejor enfoque/pila para esto?
Haga que una función de Lambda coloque las direcciones URL en una cola de SQS y otra función de Lambda que se invoque para los mensajes en la cola. El segundo Lambda maneja la consulta de una URL y almacena el resultado en DynamoDB. También obtiene reintentos en caso de que algo salga mal al usar SQS.
Puede limitar las ejecuciones simultáneas estableciendo un límite de simultaneidad para la segunda función de Lambda. También puede configurar el procesamiento por lotes para la integración de SQS y hacer que cada invocación de Lambda maneje hasta 10 URL.