¿Cómo puedo evitar los errores de limitación de la API de Route 53?

3 minutos de lectura
0

Recibo errores de limitación de API en Amazon Route 53.

Breve descripción

Al realizar llamadas a la API masivas a Route 53, es posible que reciba un error HTTP 400 (solicitud incorrecta).

Un encabezado de respuesta con un valor de elemento de Código como Limitación y un valor de elemento de Mensaje como Velocidad superada indica una limitación de velocidad. La limitación de velocidad se produce cuando el número de solicitudes de API supera el límite estricto de cinco solicitudes por segundo y por cuenta.

Si Route 53 no puede procesar la solicitud antes de la siguiente solicitud para la misma zona alojada, rechaza las solicitudes posteriores con otro error HTTP 400. El encabezado de respuesta contiene los dos elementos siguientes:

  • Un elemento de Código con el valor PriorRequestNotComplete
  • Se rechazó un elemento de Mensaje con el valor de la solicitud porque Route 53 seguía procesando una solicitud anterior.

Las llamadas a la API de los usuarios de AWS Identity and Access Management (IAM) de la misma cuenta se tienen en cuenta para limitar la tarifa global de la cuenta. Las llamadas a la API de estos usuarios de IAM también afectan a las llamadas API que se realizan desde la Consola de administración de AWS.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Para evitar la limitación de la velocidad, utilice cualquiera de los métodos siguientes:

Solicitudes de procesamiento por lotes

Para reducir las llamadas a la API, utilice AWS CLI o el SDK que prefiera para agrupar operaciones individuales del mismo tipo en una operación por lotes de cambios.

Por ejemplo, solicite CREAR, ELIMINAR o UPSERT (actualizar e insertar) varios registros con una operación por lotes. Utilice el comando change-resource-record-sets de AWS CLI para realizar operaciones de registro de recursos en bloque.

Nota:

  • Las solicitudes UPSERT cuentan dos veces.
  • Hay cuotas para los elementos y caracteres en las llamadas a la API change-resource-record-sets.

Utilice reintentos de error y retrocesos exponenciales

Para evitar la limitación, añada reintentos por error y un retroceso exponencial a las llamadas a la API de Route 53. Por ejemplo, utilice un algoritmo de retroceso exponencial simple que reintente la llamada en 2^i segundos, donde i es el número de reintentos.

Aleatorizar las horas de inicio

Aleatorice la hora de inicio para llamar a las API de Route 53. Asegúrese de que no haya varias aplicaciones que procesen la lógica al mismo tiempo. Las solicitudes simultáneas pueden provocar una limitación.

Introducir el «tiempo de espera» entre llamadas

Si las llamadas a la función de código a las API de Route 53 son consecutivas, añada un «tiempo de espera» entre las dos llamadas para minimizar el riesgo de limitación.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año