

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
<a name="trustedadvisor"></a>

Le AWS Support service vous permet d'écrire des applications qui interagissent avec [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/). 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](https://aws.amazon.com/tools/).

**Topics**
+ [Consultez la liste des Trusted Advisor chèques disponibles](#Get_TA_Checks)
+ [Actualiser la liste des Trusted Advisor chèques disponibles](#Request_TA_Data)
+ [Sondage pour Trusted Advisor vérifier les changements de statut](#getcheckstatus)
+ [Demander un résultat de Trusted Advisor contrôle](#requestcheck)
+ [Afficher les détails d'un Trusted Advisor chèque](#printdetails)

## Consultez la liste des Trusted Advisor chèques disponibles
<a name="Get_TA_Checks"></a>

L'extrait de code Java suivant crée une instance de 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 [DescribeTrustedAdvisorChecks](https://docs.aws.amazon.com/awssupport/latest/APIReference/API_DescribeTrustedAdvisorChecks.html)API. 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
<a name="Request_TA_Data"></a>

L'extrait de code Java suivant crée une instance de 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
<a name="getcheckstatus"></a>

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 [DescribeTrustedAdvisorCheckRefreshStatuses](https://docs.aws.amazon.com/awssupport/latest/APIReference/API_DescribeTrustedAdvisorCheckRefreshStatuses.html)API 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.

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

1. 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.

1. 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
<a name="requestcheck"></a>

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](https://docs.aws.amazon.com/awssupport/latest/APIReference/API_DescribeTrustedAdvisorCheckResult.html)API.

**Astuce**  
Les noms et les 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 [DescribeTrustedAdvisorChecks](https://docs.aws.amazon.com/awssupport/latest/APIReference/API_DescribeTrustedAdvisorChecks.html)API 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
<a name="printdetails"></a>

L'extrait de code Java suivant effectue une itération sur l'`DescribeTrustedAdvisorCheckResultResult`instance 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());
}
```