翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ウェブサービス Trusted Advisor として を使用する
注記
Trusted Advisor オペレーションは、2024 年に AWS Trusted Advisor サポート API ではサポートされません。新しい AWS Trusted Advisor API を使用して、ベストプラクティスのチェックとレコメンデーションにプログラムでアクセスしてください。
この AWS Support サービスを使用すると、 とやり取りするアプリケーションを記述できますAWS Trusted Advisor
トピック
利用可能な Trusted Advisor チェックのリストを取得する
次の Java コードスニペットは、すべての Trusted Advisor API オペレーションを呼び出すために使用できる AWS Support クライアントのインスタンスを作成します。次に、コードは DescribeTrustedAdvisorChecks API オペレーションを呼び出して、 Trusted Advisor チェックのリストとそれに対応するCheckId
値を取得します。この情報を使って、チェックを実行するか更新するかをユーザーが選択できるユーザーインターフェイスを構築できます。
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 Support クライアントのインスタンスを作成します。
// 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 チェックを実行して最新のステータスデータを生成するリクエストを送信したら、 DescribeTrustedAdvisorCheckRefreshStatuses API オペレーションを使用して、チェックの実行の進行状況と、新しいデータがチェックの準備ができたときをリクエストします。
次の Java コードスニペットは、CheckId
変数内の対応する値を使用して、次のセクションで要求したチェックのステータスを取得します。さらに、このコードは Trusted Advisor サービスの他のいくつかの使用法を示しています。
-
getMillisUntilNextRefreshable
の呼び出しは、DescribeTrustedAdvisorCheckRefreshStatusesResult
インスタンス内に含まれるオブジェクトをトラバースすることによって実行できます。返された値を使用して、チェックの更新を続けるのにコードが必要かどうかをテストできます。 -
timeUntilRefreshable
が 0 の場合、チェックの更新を要求できます。 -
返されたステータスを使って、ステータスの変更のポーリングを続けることができます。このコードスニペットは、ポーリング間隔を推奨値の 10 秒に設定しています。ステータスが
enqueued
またはin_progress
のいずれかの場合、ループは回帰し、他のステータスを要求します。呼び出しによってsuccessful
が返ってきた場合は、ループは終了します。 -
最後に、コードは、チェックによって生成された情報をトラバースするために使用できる、
DescribeTrustedAdvisorCheckResultResult
データ型のインスタンスを返します。
注: リクエストのステータスをポーリングする前に、単一の更新リクエストを使用します。
// 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 チェック結果をリクエストする
必要な詳細な結果のチェックを選択したら、DescribeTrustedAdvisorCheck結果 API オペレーションを使用してリクエストを送信します。
ヒント
Trusted Advisor チェックの名前と説明は変更される可能性があります。チェックを一意に識別するために、コードでチェック ID を指定することをお勧めします。DescribeTrustedAdvisorChecks API オペレーションを使用して、チェック ID を取得できます。
次の Java コードスニペットでは、前のコードスニペットで取得された result
変数によって参照される、DescribeTrustedAdvisorChecksResult
インスタンスを使用します。ユーザーインターフェイスを通じてインタラクティブにチェックを定義する代わりに、このスニペットを実行する要求を送信した後で、result.getChecks().get(0)
呼び出しごとに 0 のインデックス値を指定することによってリスト内の最初のチェックを実行する要求を送信します。次に、コードでは、checkResult
と呼ばれる DescribeTrustedAdvisorCheckResultResult
のインスタンスに渡す DescribeTrustedAdvisorCheckResultRequest
のインスタンスを定義します。チェックの結果を見るには、このデータ型のメンバー構造体を使用します。
// 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 チェック結果をリクエストしても、更新された結果データは生成されません。
Trusted Advisor チェックの詳細を表示する
次の Java コードスニペットは、前のセクションで返されたDescribeTrustedAdvisorCheckResultResult
インスタンスを反復処理して、 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()); }