Uso de Trusted Advisor como un servicio web - AWS Support

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.

Uso de Trusted Advisor como un servicio web

nota

Trusted Advisorla API Support no admitirá las operaciones en 2024. Utilice la nueva AWS Trusted AdvisorAPI para acceder mediante programación a las comprobaciones y recomendaciones de las mejores prácticas

El servicio de AWS Support le permite escribir aplicaciones que interactúan con AWS Trusted Advisor. En este tema se muestra cómo obtener una lista de comprobaciones de Trusted Advisor, actualizar una de ellas y, a continuación, obtener los resultados detallados de la comprobación. Estas tareas se han demostrado en Java. Para obtener información de soporte para otros idiomas, consulte Herramientas para Amazon Web Services

Obtener la lista de comprobaciones de Trusted Advisor disponibles

El siguiente fragmento de código Java crea una instancia de un cliente de AWS Support que se puede utilizar para llamar a todas las operaciones de la API de Trusted Advisor. A continuación, el código obtiene la lista de Trusted Advisor comprobaciones y sus CheckId valores correspondientes mediante una llamada a la operación de la DescribeTrustedAdvisorChecksAPI. Puede utilizar esta información para crear interfaces de usuario que permiten a los usuarios seleccionar la comprobación que desean ejecutar o actualizar.

private static AWSSupport createClient() { return AWSSupportClientBuilder.defaultClient(); } // Get the List of Available Trusted Advisor Checks public static void getTAChecks() { // Possible language parameters: "en" (English), "ja" (Japanese), "fr" (French), "zh" (Chinese) DescribeTrustedAdvisorChecksRequest request = new DescribeTrustedAdvisorChecksRequest().withLanguage("en"); DescribeTrustedAdvisorChecksResult result = createClient().describeTrustedAdvisorChecks(request); for (TrustedAdvisorCheckDescription description : result.getChecks()) { // Do something with check description. System.out.println(description.getId()); System.out.println(description.getName()); } }

Actualizar la lista de comprobaciones de Trusted Advisor disponibles

El siguiente fragmento de código Java crea una instancia de un cliente de AWS Support que se puede utilizar para actualizar los datos de Trusted Advisor.

// Refresh a Trusted Advisor Check // Note: Some checks are refreshed automatically, and they cannot be refreshed by using this operation. // Specifying the check ID of a check that is automatically refreshed causes an InvalidParameterValue error. public static void refreshTACheck(final String checkId) { RefreshTrustedAdvisorCheckRequest request = new RefreshTrustedAdvisorCheckRequest().withCheckId(checkId); RefreshTrustedAdvisorCheckResult result = createClient().refreshTrustedAdvisorCheck(request); System.out.println("CheckId: " + result.getStatus().getCheckId()); System.out.println("Milliseconds until refreshable: " + result.getStatus().getMillisUntilNextRefreshable()); System.out.println("Refresh Status: " + result.getStatus().getStatus()); }

Sondear una comprobación de Trusted Advisor para cambios de estado

Tras enviar la solicitud para ejecutar una Trusted Advisor comprobación a fin de generar los datos de estado más recientes, se utiliza la operación de la DescribeTrustedAdvisorCheckRefreshStatusesAPI para solicitar el progreso de la ejecución de la comprobación y cuándo hay nuevos datos listos para la comprobación.

El siguiente fragmento de código Java obtiene el estado de la comprobación solicitada en la siguiente sección, utilizando el valor correspondiente en la variable CheckId. Además, el código demuestra otros usos diversos del servicio de Trusted Advisor:

  1. Puede hacer una llamada a getMillisUntilNextRefreshable recorriendo los objetos contenidos en la instancia DescribeTrustedAdvisorCheckRefreshStatusesResult. Puede utilizar el valor devuelto para comprobar si desea que el código continúe actualizando la comprobación.

  2. Si timeUntilRefreshable equivale a cero, puede solicitar una actualización de la comprobación.

  3. Con el estado devuelto, puede seguir sondeando los cambios de estado; el fragmento de código establece el intervalo de sondeo a una recomendación de diez segundos. Si el estado es enqueued o in_progress, el bucle devuelve y solicita otro estado. Si la llamada devuelve successful, el bucle termina.

  4. Finalmente, el código devuelve una instancia de un tipo de datos DescribeTrustedAdvisorCheckResultResult que puede utilizar para recorrer la información generada con la comprobación.

Nota: utilice una única solicitud de actualización antes de sondear el estado de la solicitud.

// Retrieves TA refresh statuses. Multiple checkId's can be submitted. public static List<TrustedAdvisorCheckRefreshStatus> getTARefreshStatus(final String... checkIds) { DescribeTrustedAdvisorCheckRefreshStatusesRequest request = new DescribeTrustedAdvisorCheckRefreshStatusesRequest().withCheckIds(checkIds); DescribeTrustedAdvisorCheckRefreshStatusesResult result = createClient().describeTrustedAdvisorCheckRefreshStatuses(request); return result.getStatuses(); } // Retrieves a TA check status, and checks to see if it has finished processing. public static boolean isTACheckStatusInTerminalState(final String checkId) { // Since we only submitted one checkId to getTARefreshStatus, just retrieve the only element in the list. TrustedAdvisorCheckRefreshStatus status = getTARefreshStatus(checkId).get(0); // Valid statuses are: // 1. "none", the check has never been refreshed before. // 2. "enqueued", the check is waiting to be processed. // 3. "processing", the check is in the midst of being processed. // 4. "success", the check has succeeded and finished processing - refresh data is available. // 5. "abandoned", the check has failed to process. return status.getStatus().equals("abandoned") || status.getStatus().equals("success"); } // Enqueues a Trusted Advisor check refresh. Periodically polls the check refresh status for completion. public static TrustedAdvisorCheckResult getFreshTACheckResult(final String checkId) throws InterruptedException { refreshTACheck(checkId); while(!isTACheckStatusInTerminalState(checkId)) { Thread.sleep(10000); } return getTACheckResult(checkId); } // Retrieves fresh TA check data whenever possible. // Note: Some checks are refreshed automatically, and they cannot be refreshed by using this operation. This method // is only functional for checks that can be refreshed using the RefreshTrustedAdvisorCheck operation. public static void pollForTACheckResultChanges(final String checkId) throws InterruptedException { String checkResultStatus = null; do { TrustedAdvisorCheckResult result = getFreshTACheckResult(checkId); if (checkResultStatus != null && !checkResultStatus.equals(result.getStatus())) { break; } checkResultStatus = result.getStatus(); // The rule refresh has completed, but due to throttling rules the checks may not be refreshed again // for a short period of time. // Since we only submitted one checkId to getTARefreshStatus, just retrieve the only element in the list. TrustedAdvisorCheckRefreshStatus refreshStatus = getTARefreshStatus(checkId).get(0); Thread.sleep(refreshStatus.getMillisUntilNextRefreshable()); } while(true); // Signal that a TA check has changed check result status here. }

Solicitar un resultado de comprobación de Trusted Advisor

Tras seleccionar la comprobación para obtener los resultados detallados que desee, envíe una solicitud mediante la operación de DescribeTrustedAdvisorCheckResultAPI.

sugerencia

Los nombres y las descripciones de las verificaciones de Trusted Advisor están sujetos a cambios. Le recomendamos que especifique el ID de verificación en su código para identificar de forma exclusiva una verificación. Puedes usar la operación de DescribeTrustedAdvisorChecksAPI para obtener el ID de verificación.

El siguiente fragmento de código Java utiliza la instancia DescribeTrustedAdvisorChecksResult referida por la variable result, que se ha obtenido en el fragmento de código anterior. En lugar de definir una comprobación de forma interactiva a través de una interfaz de usuario, después de enviar la solicitud para su ejecución, el fragmento envía una solicitud de ejecución de la primera comprobación de la lista especificando un valor de índice de 0 en cada llamada result.getChecks().get(0). A continuación, el código define una instancia de DescribeTrustedAdvisorCheckResultRequest, que se pasa a una instancia de DescribeTrustedAdvisorCheckResultResult llamada checkResult. Puede utilizar las estructuras miembros de este tipo de datos para ver los resultados de la comprobación.

// Request a Trusted Advisor Check Result public static TrustedAdvisorCheckResult getTACheckResult(final String checkId) { DescribeTrustedAdvisorCheckResultRequest request = new DescribeTrustedAdvisorCheckResultRequest() // Possible language parameters: "en" (English), "ja" (Japanese), "fr" (French), "zh" (Chinese) .withLanguage("en") .withCheckId(checkId); DescribeTrustedAdvisorCheckResultResult requestResult = createClient().describeTrustedAdvisorCheckResult(request); return requestResult.getResult(); }

Nota: la solicitud de un resultado de comprobación de Trusted Advisor no genera datos de resultados actualizados.

Imprimir detalles de una comprobación de Trusted Advisor

El siguiente fragmento de código de Java se itera a través de la instancia DescribeTrustedAdvisorCheckResultResult devuelta en la sección anterior para obtener una lista de recursos etiquetados mediante la comprobación de Trusted Advisor.

// Print ResourceIds for flagged resources. for (TrustedAdvisorResourceDetail flaggedResource : result1.getResult().getFlaggedResources()) { System.out.println( "The resource for this ResourceID has been flagged: " + flaggedResource.getResourceId()); }