ウェブサービスとしての Trusted Advisor の使用 - AWS サポート

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

ウェブサービスとしての Trusted Advisor の使用

AWS サポート サービスを使用すると、AWS Trusted Advisor と交信するアプリケーションを作成できます。このトピックでは、Trusted Advisor チェックのリストを取得し、その 1 つを更新してから、チェックの結果詳細を取得する方法を説明します。これには、Java を使用します。他の言語のサポートに関する情報については、「Amazon Web Services のツール」を参照してください。

提供されている Trusted Advisor チェックのリストを取得する

次のJavaコード スニペットは、 AWS サポート すべてを呼び出すために使用できる Trusted Advisor API 操作。次に、コードが Trusted Advisor 小切手とそれに対応する CheckId 値( 説明TrustedAdvisor小切手 API 操作。この情報を使って、チェックを実行するか更新するかをユーザーが選択できるユーザーインターフェイスを構築できます。

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

提供されている Trusted Advisor チェックのリストを更新する

次の Java コードスニペットでは、すべての Trusted Advisor データを更新するために使用できる AWS サポート クライアントのインスタンスを作成します。

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

Trusted Advisor をポーリングして、ステータス変更をチェックする

実行するリクエストを送信した後、 Trusted Advisor チェックすると、最新のステータスデータが生成されます。 説明TrustedAdvisorCheckRefreshStatuses 小切手の実行の進行状況、および新しいデータの小切手の準備完了時に要求するAPI操作。

次の Java コードスニペットは、CheckId 変数内の対応する値を使用して、次のセクションで要求したチェックのステータスを取得します。また、コードは、Trusted Advisor サービスの他の使用方法を示します。

  1. getMillisUntilNextRefreshable の呼び出しは、DescribeTrustedAdvisorCheckRefreshStatusesResult インスタンス内に含まれるオブジェクトをトラバースすることによって実行できます。返された値を使用して、チェックの更新を続けるのにコードが必要かどうかをテストできます。

  2. timeUntilRefreshable が 0 の場合、チェックの更新を要求できます。

  3. 返されたステータスを使って、ステータスの変更のポーリングを続けることができます。このコードスニペットは、ポーリング間隔を推奨値の 10 秒に設定しています。ステータスが enqueued または in_progress のいずれかの場合、ループは回帰し、他のステータスを要求します。呼び出しによって successful が返ってきた場合は、ループは終了します。

  4. 最後に、コードは、チェックによって生成された情報をトラバースするために使用できる、DescribeTrustedAdvisorCheckResultResult データ型のインスタンスを返します。

注意: リクエストのステータスをポーリングする前に、1つの更新リクエストを使用します。

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

Trusted Advisor チェック結果のリクエスト

目的の詳細な結果のチェックを選択した後、 TrustedAdvisorCheckResultの説明 API 操作。

ヒント

次の名前と説明: Trusted Advisor 小切手は変更される場合があります。小切手を一意に識別するために、コード内の小切手IDを指定することをお勧めします。[ 説明TrustedAdvisor小切手 小切手IDを取得するAPI操作。

次の Java コードスニペットでは、前のコードスニペットで取得された result 変数によって参照される、DescribeTrustedAdvisorChecksResult インスタンスを使用します。ユーザーインターフェイスを通じてインタラクティブにチェックを定義する代わりに、このスニペットを実行する要求を送信した後で、result.getChecks().get(0) 呼び出しごとに 0 のインデックス値を指定することによってリスト内の最初のチェックを実行する要求を送信します。次に、コードが DescribeTrustedAdvisorCheckResultRequestは、次のインスタンスに渡されます。 DescribeTrustedAdvisorCheckResultResult 呼び出した checkResult. このデータタイプのメンバー構造を使用して、小切手の結果を表示できます。

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

注意: 要求する Trusted Advisor Check Resultは更新された結果データを生成しません。

Trusted Advisor のチェック詳細を印刷する

次の Java コードスニペットは、Trusted Advisor チェックによってフラグが付けられたリソースのリストを取得するために前のセクションで返された DescribeTrustedAdvisorCheckResultResult インスタンス上を反復します。

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