Utilizzo Trusted Advisor come servizio web - AWS Support

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo Trusted Advisor come servizio web

Nota

Trusted Advisor le operazioni non saranno supportate dall'API AWS Trusted Advisor Support nel 2024. Utilizza la nuova AWS Trusted Advisor API per accedere in modo programmatico ai controlli e ai consigli sulle migliori pratiche.

Il AWS Support servizio consente di scrivere applicazioni che interagiscono con. AWS Trusted Advisor In questo argomento viene illustrato come ottenere un elenco di Trusted Advisor controlli, aggiornarne uno e quindi ottenere i risultati dettagliati del controllo. Queste attività sono illustrate in Java. Per informazioni sul supporto di altre lingue, consulta la pagina relativa agli strumenti per Amazon Web Services.

Visualizza l'elenco dei controlli disponibili Trusted Advisor

Il seguente frammento di codice Java crea un'istanza di un AWS Support client che puoi utilizzare per chiamare tutte le operazioni Trusted Advisor API. Successivamente, il codice ottiene l'elenco dei Trusted Advisor controlli e i CheckId valori corrispondenti chiamando l'operazione DescribeTrustedAdvisorChecksAPI. Puoi utilizzare queste informazioni per creare interfacce utente che consentano agli utenti di selezionare il controllo che desiderano eseguire o aggiornare.

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()); } }

Aggiorna l'elenco dei controlli disponibili Trusted Advisor

Il seguente frammento di codice Java crea un'istanza di un AWS Support client che è possibile utilizzare per aggiornare i dati. 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()); }

Esegui un Trusted Advisor sondaggio per verificare le modifiche allo stato

Dopo aver inviato la richiesta di eseguire un Trusted Advisor controllo per generare i dati di stato più recenti, si utilizza l'operazione DescribeTrustedAdvisorCheckRefreshStatusesAPI per richiedere lo stato di avanzamento dell'esecuzione del controllo e quando i nuovi dati sono pronti per il controllo.

Il seguente frammento di codice Java ottiene lo stato del controllo richiesto nella sezione seguente utilizzando il valore corrispondente nella variabile CheckId. Inoltre, il codice illustra diversi altri usi del Trusted Advisor servizio:

  1. Puoi richiamare getMillisUntilNextRefreshable ricorrendo agli oggetti contenuti nell'istanza DescribeTrustedAdvisorCheckRefreshStatusesResult. Puoi utilizzare il valore restituito per verificare se desideri che il codice esegua l'aggiornamento del controllo.

  2. Se timeUntilRefreshable è uguale a zero, puoi richiedere l'aggiornamento del controllo.

  3. Utilizzando lo stato restituito, puoi continuare a sollecitare cambiamenti di stato; il frammento di codice imposta l'intervallo di polling sul valore consigliato di dieci secondi. Se lo stato è enqueued o in_progress, il ciclo ricomincia e viene richiesto un altro stato. Se la chiamata restituisce successful, il ciclo viene terminato.

  4. Infine, il codice restituisce un'istanza di un tipo di dati DescribeTrustedAdvisorCheckResultResult che puoi utilizzare per ricorrere alle informazioni prodotte per il controllo.

Note: utilizza una richiesta di aggiornamento singola prima di eseguire il polling dello stato della richiesta.

// 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. }

Richiedi il risultato di un Trusted Advisor controllo

Dopo aver selezionato il controllo per i risultati dettagliati che desideri, invii una richiesta utilizzando l'operazione DescribeTrustedAdvisorCheckResult API.

Suggerimento

I nomi e le descrizioni Trusted Advisor dei controlli sono soggetti a modifiche. Si consiglia di specificare l'ID del controllo nel codice per identificare in modo univoco un controllo. È possibile utilizzare l'operazione DescribeTrustedAdvisorChecksAPI per ottenere l'ID dell'assegno.

Il seguente frammento di codice Java utilizza l'istanza DescribeTrustedAdvisorChecksResult a cui fa riferimento la variabile result, ottenuta nel precedente frammento di codice. Anziché definire un controllo in modo interattivo mediante un'interfaccia utente, dopo aver inviato al richiesta di esecuzione, il frammento invia semplicemente una richiesta di esecuzione per il primo check nell'elenco specificando un valore di indice 0 in ciascuna chiamata result.getChecks().get(0). Quindi, il codice definisce un'istanza di DescribeTrustedAdvisorCheckResultRequest, che trasferisce a un'istanza di DescribeTrustedAdvisorCheckResultResult chiamata checkResult. Puoi utilizzare le strutture del membro di questo tipo di dati per visualizzare i risultati del controllo.

// 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 richiesta di un risultato del Trusted Advisor controllo non genera dati aggiornati sui risultati.

Mostra i dettagli di un controllo Trusted Advisor

Il seguente frammento di codice Java esegue un'iterazione sull'DescribeTrustedAdvisorCheckResultResultistanza restituita nella sezione precedente per ottenere un elenco di risorse contrassegnate dal controllo. Trusted Advisor

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