Using Trusted Advisor as a web service - AWS Support

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Using Trusted Advisor as a web service

AWS Support 서비스를 통해 AWS Trusted Advisor와 상호 작용하는 애플리케이션을 구성할 수 있습니다. 이 주제에서는 Trusted Advisor 점검 목록을 가져와서 그 중 하나를 새로 고침하고 점검 항목에서 자세한 결과를 확인하는 방법을 보여 줍니다. 이러한 작업은 Java에 설명되어 있습니다. 다른 언어 지원에 대한 정보는 Amazon Web Services용 도구를 참조하십시오.

Get the list of available Trusted Advisor checks

다음 Java 코드 조각은 모든 Trusted Advisor 작업을 호출하는 데 사용할 수 있는 AWS Support 클라이언트의 인스턴스를 생성합니다. 그 다음, 이 코드는 DescribeTrustedAdvisorChecks 작업을 호출하여 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()); } }

Refresh the list of available Trusted Advisor checks

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

Poll a Trusted Advisor check for status changes

최신 상태로 데이터를 생성하기 위해 Trusted Advisor 점검 실행 요청을 제출한 후 새 데이터를 점검할 준비가 되면 DescribeTrustedAdvisorCheckRefreshStatuses 작업을 사용하여 점검 실행의 진행 상황을 요청합니다.

다음 Java 코드 조각은 CheckId 변수에 해당하는 값을 사용하여 다음 단원에서 요청된 점검 상태를 가져옵니다. 또한 이 코드는 Trusted Advisor 서비스의 몇 가지 다른 용도를 보여줍니다.

  1. DescribeTrustedAdvisorCheckRefreshStatusesResult 인스턴스에 포함된 객체를 통과하여 getMillisUntilNextRefreshable을 호출할 수 있습니다. 반환된 값을 사용하여 코드로 점검 항목을 새로 고칠 것인지 여부를 테스트할 수 있습니다.

  2. timeUntilRefreshable이 0가 동일한 경우 점검 항목의 새로 고침을 요청할 수 있습니다.

  3. 반환된 상태를 사용하여 상태 변경 사항을 계속 폴링할 수 있습니다. 코드 조각은 폴링 간격을 10초(권장됨)로 설정합니다. 상태가 enqueued 또는 in_progress인 경우 반복 작업에서 반환하며 다른 상태를 요청합니다. 호출이 successful을 반환하면 반복 작업이 종료됩니다.

  4. 마지막으로, 코드는 점검을 통해 생성된 정보를 통과하는 데 사용할 수 있는 DescribeTrustedAdvisorCheckResultResult 데이터 형식의 인스턴스를 반환합니다.

Note: 요청 상태에 대해 폴링하기 전에 단일 새로 고침 요청을 사용합니다.

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

Request a Trusted Advisor check result

원하는 세부 결과에 대한 점검 항목을 선택한 후 DescribeTrustedAdvisorCheckResult 작업을 사용하여 요청을 제출합니다.

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

Note: &t={\f Trusted Advisor 수표 결과가 업데이트된 결과 데이터를 생성하지 않습니다.

Print details of a Trusted Advisor check

다음 Java 코드 조각은 이전 단원에서 반환된 DescribeTrustedAdvisorCheckResultResult 인스턴스를 반복 처리하여 Trusted Advisor 점검을 통해 표시된 리소스 목록을 가져옵니다.

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