aws-samples / aws-samples/aws-lambda-mirror-dns-function
Lambda function reaches max timeout limit (5min) in diff_zones()
- Lenguaje dominante
- Python
- Estrellas
- 41
- Forks
- 29
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
When running this Lambda function to mirror a zone containing a large amount of DNS records (~43500), it reaches max Lambda timeout limit of 5 minutes inside function `diff_zones()`.
The DNS `AXFR` request returns within `500` to `1000` milliseconds with `dig`, returning the 40k records very fast. The problem lies in the python code which needs to parse through all the `dns.zone.Zone` nodes, records, etc... and diff them to build the `differences` list.
The code never even gets to the looping over `differences` and running `update_resource_record()` to make changes to Route53.
It's hard to believe that the python code is so slow to generate a list of DNS zone differences. I can imagine a simple bash script using `dig` and `diff` that would be much more efficient to perform the same function for this portion of the Lambda code.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.