Tengo 110 tareas de Fargate ejecutándose (no siempre en paralelo). Estoy tratando de obtener lambdas de otras cuentas de AWS (a través de CrossAccountRole) usando la llamada "ListFunctions" como se indica en el SDK de AWS: https://docs.aws.amazon.com/sdk-for-go/api/service/lambda/ #Lambda.ListFunctions
A veces recibo un error de Throttling al realizar la llamada a la API (SDK): ThrottlingException: Tasa excedida, código de estado: 400
También he pasado por esta solución: https://docs.aws.amazon.com/general/latest/gr/api-retries.html
Quería saber si el servicio SDK de AWS (lambda) ya lo implementa. ¿Necesito una implementación personalizada de reintentos en mi caso o simplemente aumentar el límite de frecuencia de Fargate?
Para los documentos que publicaste:
Además de los reintentos simples, cada SDK de AWS implementa un algoritmo de retroceso exponencial para un mejor control del flujo.
Esto se aclara con más detalle en el blog de aws :
Nota: Cada SDK de AWS implementa una lógica de reintento automático y algoritmos de retroceso exponencial.
¿Necesito una implementación personalizada de reintentos en mi caso o simplemente aumentar el límite de frecuencia de Fargate?
Si usa AWS SDK, no tiene que implementar nada especial. Sin embargo, su excepción puede estar relacionada con el escalado de funciones de AWS Lambda :
Cuando las solicitudes llegan más rápido de lo que su función puede escalar, o cuando su función tiene la simultaneidad máxima, las solicitudes adicionales fallan con un error de limitación (código de estado 429).
Por lo tanto, si cree que está alcanzando sus límites de concurrencia en lambda, lo que podría deberse a una gran cantidad de tareas de Fargate, puede considerar solicitar un aumento al soporte de AWS. El límite predeterminado es 1000, que parece ser suficiente para sus tareas. Pero tal vez la otra cuenta también esté ejecutando otras lambdas. El límite de 1000 es para todas las funciones en una cuenta y región.