Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Paginación en Amazon EC2 API

Modo de enfoque
Paginación en Amazon EC2 API - Amazon Elastic Compute Cloud

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Te recomendamos que utilices la paginación cuando llames a acciones que puedan arrojar un gran número de resultados, como: DescribeInstances El uso de la paginación limita el número de elementos devueltos por una llamada de descripción y el tiempo que tarda en devolverse la llamada. Si dispone de una gran cantidad de recursos, es posible que las llamadas no paginadas se limiten y se agote el tiempo de espera. Por lo tanto, la latencia general es mejor con las llamadas paginadas que con las no paginadas, ya que las llamadas paginadas se realizan correctamente de forma constante.

Para obtener más información, consulta Paginación en Amazon EC2 API Reference.

Prácticas recomendadas

Siempre que sea posible, especifique una lista de recursos IDs en la descripción de las llamadas. Esta es la forma más rápida de describir una gran cantidad de recursos. Tenga en cuenta que no debe especificar más de 1000 IDs en una sola llamada. A continuación se muestra un ejemplo.

private List<Reservation> describeMyInstances(List<String> ids){ if (ids == null || ids.isEmpty()) { return ImmutableList.of(); } final DescribeInstancesRequest request = new DescribeInstancesRequest() .withInstanceIds(ids); return ec2.describeInstances(request).getReservations(); }

Si no puedes especificar un recurso IDs en la descripción de las llamadas, te recomendamos encarecidamente que utilices la paginación. A continuación se muestra un ejemplo.

private List<Reservation> describeMyInstances(final Collection<Filter> filters){ final DescribeInstancesRequest request = new DescribeInstancesRequest() .withFilters(filters) .withMaxResults(1000); List<Reservation> reservations = new ArrayList<>(); String nextToken = null; do { request.setNextToken(nextToken); final DescribeInstancesResult response = ec2.describeInstances(request); reservations.addAll(response.getReservations()); nextToken = response.getNextToken(); } while (nextToken != null); return reservations; }

Si necesitas volver a intentar una llamada paginada, utiliza el retardo exponencial con fluctuación.

Problemas comunes

Los siguientes son ejemplos de código que realiza llamadas no paginadas de forma inadvertida.

ejemplo Ejemplo de problema: pasar una lista vacía de recursos IDs

El código siguiente usa una lista deIDs. Sin embargo, si la lista está vacía, el resultado es una llamada sin paginar.

private List<Reservation> describeMyInstances(List<String> ids){ final DescribeInstancesRequest request = new DescribeInstancesRequest() .withInstanceIds(ids); return ec2.describeInstances(request).getReservations(); }

Para corregir este problema, asegúrese de que la lista no esté vacía antes de realizar la llamada descrita.

private List<Reservation> describeMyInstances(List<String> ids){ if (ids == null || ids.isEmpty()) { return ImmutableList.of(); // OR return Lists.newArrayList(); // OR return new ArrayList<>(); } final DescribeInstancesRequest request = new DescribeInstancesRequest() .withInstanceIds(ids); return ec2.describeInstances(request).getReservations(); }
ejemplo Problema de ejemplo: no configurar MaxResults

El siguiente código comprueba y utilizanextToken, pero no estableceMaxResults.

private List<Reservation> describeMyInstances(final Collection<Filter> filters){ final DescribeInstancesRequest request = new DescribeInstancesRequest() .withFilters(filters); List<Reservation> reservations = new ArrayList<>(); String nextToken = null; do { request.setNextToken(nextToken); final DescribeInstancesResult response = ec2.describeInstances(request); reservations.addAll(response.getReservations()); nextToken = response.getNextToken(); } while (nextToken != null); return reservations; }

Para corregir este problema, añada withMaxResults lo siguiente.

private List<Reservation> describeMyInstances(final Collection<Filter> filters){ final DescribeInstancesRequest request = new DescribeInstancesRequest() .withFilters(filters) .withMaxResults(1000); List<Reservation> reservations = new ArrayList<>(); String nextToken = null; do { request.setNextToken(nextToken); final DescribeInstancesResult response = ec2.describeInstances(request); reservations.addAll(response.getReservations()); nextToken = response.getNextToken(); } while (nextToken != null); return reservations; }

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.