Verwenden von Trusted Advisor als Webservice - AWS Support

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Trusted Advisor als Webservice

Anmerkung

Trusted AdvisorOperationen werden 2024 nicht von der Support-API unterstützt. Bitte verwenden Sie die neue AWS Trusted AdvisorAPI, um programmgesteuert auf bewährte Verfahren und Empfehlungen zuzugreifen

Der AWS Support-Service ermöglicht Ihnen das Schreiben von Anwendungen, die mit AWS Trusted Advisor interagieren. In diesem Thema erfahren Sie, wie Sie eine Liste von Trusted Advisor-Prüfungen abrufen, eine dieser aktualisieren und dann die detaillierten Ergebnisse aus der Prüfung erhalten. Diese Aufgaben werden in Java dargestellt. Weitere Informationen zum Support für andere Sprachen finden Sie unter Tools für Amazon Web Services.

Abrufen der Liste der verfügbaren Trusted Advisor-Prüfungen

Der folgende Java-Codeausschnitt erstellt eine Instance eines AWS Support-Clients, die Sie benutzen können, um alle Trusted Advisor-‘API-Operations aufzurufen. Als Nächstes ruft der Code die Liste der Trusted Advisor Prüfungen und der entsprechenden CheckId Werte ab, indem er die DescribeTrustedAdvisorChecksAPI-Operation aufruft. Anhand dieser Informationen können Sie Benutzeroberflächen erstellen, mit denen Benutzer die Prüfung auswählen können, die sie ausführen oder aktualisieren möchten.

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

Aktualisieren der Liste der verfügbaren Trusted Advisor-Prüfungen

Der folgende Java-Codeausschnitt erstellt eine Instance eines AWS Support-Clients, die Sie verwenden können, um alle Trusted Advisor-Daten zu aktualisieren.

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

Abrufen einer Trusted Advisor-Prüfung für eine Statusänderung

Nachdem Sie die Anforderung zur Ausführung einer Trusted Advisor Prüfung zur Generierung der neuesten Statusdaten eingereicht haben, verwenden Sie den DescribeTrustedAdvisorCheckRefreshStatusesAPI-Vorgang, um den Status der Ausführung der Prüfung und die Verfügbarkeit neuer Daten für die Prüfung abzufragen.

Der folgende Java-Codeausschnitt ruft den Status der angeforderten Prüfung in dem folgenden Abschnitt ab, indem er den Wert verwendet, welcher der CheckId-Variable entspricht. Darüber hinaus zeigt der Code mehrere andere Verwendungen des Trusted Advisor Service:

  1. Sie können getMillisUntilNextRefreshable aufrufen, indem Sie Objekte, die in der DescribeTrustedAdvisorCheckRefreshStatusesResult-Instance enthalten sind, durchlaufen. Sie können den zurückgegebenen Wert verwenden, um zu testen, ob der Code mit der Aktualisierung der Prüfung fortgesetzt werden soll.

  2. Wenn timeUntilRefreshable null entspricht, können Sie eine Aktualisierung der Prüfung anfordern.

  3. Durch die Verwendung des zurückgegebenen Status können Sie weiterhin Statusänderungen abrufen. Der Codeausschnitt legt das Abrufintervall auf empfohlene zehn Sekunden fest. Wenn der Status entweder enqueued oder in_progress ist, kehrt die Schleife zurück und fordert einen anderen Status an. Wenn der Aufruf successful zurückgibt, wird die Schleife beendet.

  4. Schließlich gibt der Code eine Instance eines DescribeTrustedAdvisorCheckResultResult-Datentyps zurück, den Sie verwenden können, um die Informationen der Prüfung zu durchlaufen.

Hinweis: Verwenden Sie eine einzelne Aktualisierungsanforderung, bevor Sie den Status der Anforderung abfragen.

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

Anfordern eines Trusted Advisor-Prüfungsergebnisses

Nachdem Sie die Prüfung für die gewünschten detaillierten Ergebnisse ausgewählt haben, reichen Sie mithilfe der DescribeTrustedAdvisorCheckResultAPI-Operation eine Anfrage ein.

Tipp

Die Bezeichnungen und Beschreibungen der Trusted Advisor Prüfungen können sich ändern. Wir empfehlen Ihnen, die Prüfungs-ID in Ihrem Code anzugeben, um eine Prüfung eindeutig zu identifizieren. Sie können den DescribeTrustedAdvisorChecksAPI-Vorgang verwenden, um die Scheck-ID abzurufen.

Der folgende Java-Codeausschnitt verwendet die DescribeTrustedAdvisorChecksResult-Instance, auf welche die Variable result verweist, die im vorhergehenden Codeausschnitt erhalten wurde. Nachdem Sie die Anforderung zum Ausführen des Ausschnitts gesendet haben, sendet der Ausschnitt, anstatt eine Prüfung interaktiv über eine Benutzeroberfläche zu definieren, eine Anforderung für die erste Prüfung in der Liste, die ausgeführt werden soll. Dabei wird in jedem result.getChecks().get(0)-Aufruf als Indexwert 0 angegeben. Als Nächstes definiert der Code eine Instance von DescribeTrustedAdvisorCheckResultRequest, die er an eine Instance von DescribeTrustedAdvisorCheckResultResult mit dem Namen checkResult weiterleitet. Sie können die Mitgliedsstrukturen dieses Datentyps verwenden, um die Ergebnisse der Prüfung anzuzeigen.

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

Hinweis: Durch Anfordern eines Trusted Advisor-Prüfungsergebnisses werden keine aktualisierten Ergebnisdaten erstellt.

Details einer Trusted Advisor-Prüfung drucken

Der folgende Java-Codeausschnitt iteriert über die DescribeTrustedAdvisorCheckResultResult-Instance, die im vorherigen Abschnitt zurückgegeben wurde, um eine Liste der durch die Trusted Advisor-Prüfung markierten Ressourcen abzurufen.

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