Utilisation en Trusted Advisor tant que service Web - AWS Support

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation en Trusted Advisor tant que service Web

Note

Trusted Advisor les opérations ne seront pas prises en charge par l'API AWS Trusted Advisor Support en 2024. Utilisez la nouvelle AWS Trusted Advisor API pour accéder par programmation aux vérifications et aux recommandations relatives aux meilleures pratiques.

Le AWS Support service vous permet d'écrire des applications qui interagissent avec AWS Trusted Advisor. Cette rubrique explique comment obtenir une liste de Trusted Advisor vérifications, actualiser l'une d'entre elles, puis obtenir les résultats détaillés de la vérification. Ces tâches sont décrites dans Java. Pour plus d'informations sur la prise en charge d'autres langages, consultez Outils pour Amazon Web Services.

Consultez la liste des Trusted Advisor chèques disponibles

L'extrait de code Java suivant crée une instance de AWS Support client que vous pouvez utiliser pour appeler toutes les opérations d' Trusted Advisor API. Ensuite, le code obtient la liste des Trusted Advisor vérifications et leurs CheckId valeurs correspondantes en appelant l'opération DescribeTrustedAdvisorChecksAPI. Vous pouvez utiliser ces informations pour créer des interfaces utilisateur qui permettent aux utilisateurs de sélectionner le contrôle qu'ils veulent exécuter ou actualiser.

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

Actualiser la liste des Trusted Advisor chèques disponibles

L'extrait de code Java suivant crée une instance de AWS Support client que vous pouvez utiliser pour Trusted Advisor actualiser les données.

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

Sondage pour Trusted Advisor vérifier les changements de statut

Après avoir soumis la demande d'exécution d'une Trusted Advisor vérification afin de générer les dernières données d'état, vous utilisez l'opération DescribeTrustedAdvisorCheckRefreshStatusesAPI pour demander la progression de l'exécution de la vérification et savoir quand de nouvelles données sont prêtes pour la vérification.

L'extrait de code Java suivant obtient l'état du contrôle demandé dans la section suivante, à l'aide de la valeur correspondante dans la variable CheckId. En outre, le code illustre plusieurs autres utilisations du Trusted Advisor service :

  1. Vous pouvez appeler getMillisUntilNextRefreshable en parcourant les objets contenus dans l'instance DescribeTrustedAdvisorCheckRefreshStatusesResult. Vous pouvez utiliser la valeur renvoyée pour tester si votre code doit continuer à actualiser le contrôle.

  2. Si la valeur de timeUntilRefreshable est égale à zéro, vous pouvez demander une actualisation du contrôle.

  3. A l'aide de l'état renvoyé, vous pouvez continuer l'interrogation afin d'identifier les modifications d'état ; l'extrait de code définit l'intervalle d'interrogation sur le délai recommandé, à savoir dix secondes. Si l'état est enqueued ou in_progress, la boucle revient au point de départ et redemande un autre état. Si l'appel renvoie successful, la boucle se termine.

  4. Enfin, le code renvoie une instance d'un type de données DescribeTrustedAdvisorCheckResultResult que vous pouvez utiliser pour parcourir les informations générées par le contrôle.

Remarque : utilisez une seule requête d'actualisation avant d'interroger le statut de la requête.

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

Demander un résultat de Trusted Advisor contrôle

Après avoir sélectionné la vérification des résultats détaillés que vous souhaitez, vous soumettez une demande à l'aide de l'opération DescribeTrustedAdvisorCheckResult API.

Astuce

Les noms et descriptions des Trusted Advisor chèques sont susceptibles d'être modifiés. Nous vous recommandons de spécifier l'ID de vérification dans votre code pour identifier de manière unique une vérification. Vous pouvez utiliser l'opération DescribeTrustedAdvisorChecksAPI pour obtenir l'ID du chèque.

L'extrait de code Java suivant utilise l'instance DescribeTrustedAdvisorChecksResult référencée par la variable result, obtenue dans l'extrait de code précédent. Plutôt que de définir un contrôle de manière interactive via une interface utilisateur, une fois que vous avez soumis une demande d'exécution, l'extrait de code soumet une demande d'exécution du premier contrôle dans la liste en spécifiant une valeur d'index 0 dans chaque appel result.getChecks().get(0). Ensuite, le code définit une instance de DescribeTrustedAdvisorCheckResultRequest qu'il transmet à une instance de DescribeTrustedAdvisorCheckResultResult appelée checkResult. Vous pouvez utiliser les structures membres de ce type de données pour afficher les résultats du contrôle.

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

Remarque : La demande d'un résultat de Trusted Advisor vérification ne génère pas de données de résultats mises à jour.

Afficher les détails d'un Trusted Advisor chèque

L'extrait de code Java suivant effectue une itération sur l'DescribeTrustedAdvisorCheckResultResultinstance renvoyée dans la section précédente pour obtenir une liste des ressources signalées par le contrôle. 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()); }