Udostępnij za pośrednictwem


Omówienie rozwiązywania problemów z zestawem Azure SDK dla języka Java

W tym artykule przedstawiono wiele narzędzi do rozwiązywania problemów dostępnych podczas korzystania z zestawu Azure SDK dla języka Java oraz linki do innych artykułów z dodatkowymi szczegółami.

Zestaw Azure SDK dla języka Java składa się z wielu bibliotek klienckich — co najmniej jednej dla każdej usługi platformy Azure, która istnieje. Upewniamy się, że wszystkie biblioteki klienckie są tworzone zgodnie ze spójnym, wysokim standardem z typowymi wzorcami konfiguracji, rejestrowania, obsługi wyjątków i rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Korzystanie z zestawu Azure SDK dla języka Java.

Ponieważ rozwiązywanie problemów może obejmować tak szeroki obszar tematów, opracowaliśmy następujące przewodniki rozwiązywania problemów, które warto przejrzeć:

Wraz z tymi ogólnymi przewodnikami rozwiązywania problemów udostępniamy również przewodniki rozwiązywania problemów specyficzne dla biblioteki. W tej chwili dostępne są następujące przewodniki:

Poza tymi dokumentami poniższa zawartość zawiera wskazówki dotyczące najlepszego wykorzystania rejestrowania i obsługi wyjątków w odniesieniu do zestawu Azure SDK dla języka Java.

Korzystanie z rejestrowania w zestawie Azure SDK dla języka Java

W poniższych sekcjach opisano sposób włączania różnych rodzajów rejestrowania.

Włączanie rejestrowania klientów

Aby rozwiązać problemy, należy najpierw włączyć rejestrowanie w celu monitorowania zachowania aplikacji. Błędy i ostrzeżenia w dziennikach zwykle zapewniają przydatne informacje o tym, co poszło nie tak, a czasami obejmują akcje naprawcze w celu rozwiązania problemów. Zestaw Azure SDK dla języka Java ma kompleksową obsługę rejestrowania. Aby uzyskać więcej informacji, zobacz Konfigurowanie rejestrowania w zestawie Azure SDK dla języka Java.

Włączanie rejestrowania żądań HTTP/odpowiedzi

Podczas rozwiązywania problemów warto przejrzeć żądania HTTP podczas ich wysyłania i odbierania między usługami platformy Azure. Aby włączyć rejestrowanie ładunku żądania HTTP i ładunku odpowiedzi, możesz skonfigurować prawie wszystkie biblioteki klienckie zestawu Azure SDK dla języka Java w konstruktorach klientów, jak pokazano w poniższym przykładzie. W szczególności należy zwrócić szczególną uwagę na httpLogOptions metodę konstruktora klienta i wartości wyliczenia dostępne w HttpLogDetailLevelpliku .

ConfigurationClient configurationClient = new ConfigurationClientBuilder()
        .connectionString(connectionString)
        .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
        .buildClient();

Ten kod zmienia rejestrowanie żądań HTTP/odpowiedzi dla pojedynczego wystąpienia klienta. Alternatywnie można skonfigurować rejestrowanie żądań HTTP i odpowiedzi dla całej aplikacji, ustawiając AZURE_HTTP_LOG_DETAIL_LEVEL zmienną środowiskową na jedną z wartości w poniższej tabeli. Należy pamiętać, że ta zmiana umożliwia rejestrowanie dla każdego klienta platformy Azure obsługującego rejestrowanie żądania/odpowiedzi HTTP.

Wartość Poziom rejestrowania
none Rejestrowanie żądań HTTP/odpowiedzi jest wyłączone.
basic Rejestruje tylko adresy URL, metody HTTP i czas zakończenia żądania.
headers Rejestruje wszystkie elementy w warstwie PODSTAWOWA oraz wszystkie nagłówki żądań i odpowiedzi.
body Rejestruje wszystko w warstwie PODSTAWOWA oraz całą treść żądania i odpowiedzi.
body_and_headers Rejestruje wszystko w nagłówkach i treści.

Uwaga

Podczas rejestrowania żądań i treści odpowiedzi upewnij się, że nie zawierają informacji poufnych. Podczas rejestrowania parametrów zapytania i nagłówków biblioteka klienta ma domyślny zestaw parametrów zapytania i nagłówków, które są uważane za bezpieczne do rejestrowania. Istnieje możliwość dodania dodatkowych parametrów zapytania i nagłówków, które są bezpieczne do rejestrowania, jak pokazano w poniższym przykładzie:

clientBuilder.httpLogOptions(new HttpLogOptions()
    .addAllowedHeaderName("safe-to-log-header-name")
    .addAllowedQueryParamName("safe-to-log-query-parameter-name"))

Obsługa wyjątków w zestawie Azure SDK dla języka Java

Większość metod usługi klienta zestawu Azure SDK dla języka Java zgłasza wyjątek HttpResponseException lub bardziej szczegółową podklasę w przypadku awarii. Typ HttpResponseException zawiera szczegółowy obiekt błędu odpowiedzi, który zapewnia konkretny przydatny wgląd w to, co poszło nie tak i zawiera akcje naprawcze w celu rozwiązania typowych problemów. Te informacje o błędzie można znaleźć wewnątrz właściwości komunikatu HttpResponseException obiektu. Ponieważ te wyjątki są wyjątkami środowiska uruchomieniowego, dokumentacja referencyjna javaDoc nie wywołuje ich jawnie.

W poniższym przykładzie pokazano, jak przechwycić ten wyjątek za pomocą klienta synchronicznego:

try {
    ConfigurationSetting setting = new ConfigurationSetting().setKey("myKey").setValue("myValue");
    client.getConfigurationSetting(setting);
} catch (HttpResponseException e) {
    System.out.println(e.getMessage());
    // Do something with the exception
}

W przypadku klientów asynchronicznych można przechwytywać wyjątki i obsługiwać je w wywołaniach zwrotnych błędów, jak pokazano w poniższym przykładzie:

ConfigurationSetting setting = new ConfigurationSetting().setKey("myKey").setValue("myValue");
asyncClient.getConfigurationSetting(setting)
    .doOnSuccess(ignored -> System.out.println("Success!"))
    .doOnError(
        error -> error instanceof ResourceNotFoundException,
        error -> System.out.println("Exception: 'getConfigurationSetting' could not be performed."));

Używanie śledzenia w zestawie Azure SDK dla języka Java

Zestaw Azure SDK dla języka Java oferuje kompleksową obsługę śledzenia, umożliwiając wyświetlanie przepływu wykonywania za pomocą kodu aplikacji i używanych bibliotek klienckich. Śledzenie w bibliotekach klienta platformy Azure można włączyć przy użyciu zestawu SDK openTelemetry lub przy użyciu agenta zgodnego z biblioteką OpenTelemetry. OpenTelemetry to popularna platforma do obserwacji typu open source do generowania, przechwytywania i zbierania danych telemetrycznych dla oprogramowania natywnego dla chmury.

Aby uzyskać więcej informacji na temat włączania śledzenia w zestawie Azure SDK dla języka Java, zobacz Konfigurowanie śledzenia w zestawie Azure SDK dla języka Java.

Następne kroki

Jeśli wskazówki dotyczące rozwiązywania problemów w tym artykule nie pomogą rozwiązać problemów podczas korzystania z bibliotek klienckich zestawu Azure SDK dla języka Java, zalecamy zgłoszenie problemuw repozytorium GitHub zestawu Azure SDK dla języka Java.