Partager via


Vue d’ensemble de la résolution des problèmes pour le Kit de développement logiciel (SDK) Azure pour Java

Cet article présente de nombreux outils de résolution des problèmes disponibles lorsque vous utilisez le Kit de développement logiciel (SDK) Azure pour Java, ainsi que des liens vers d’autres articles avec plus d’informations.

Le Kit de développement logiciel (SDK) Azure pour Java se compose de nombreuses bibliothèques clientes , une ou plusieurs pour chaque service Azure qui existe. Nous nous assurons que toutes les bibliothèques clientes sont conçues de manière cohérente et standard, avec des modèles courants pour la configuration, la journalisation, la gestion des exceptions et la résolution des problèmes. Pour plus d’informations, consultez Utiliser le Kit de développement logiciel (SDK) Azure pour Java.

Étant donné que la résolution des problèmes peut s’étendre sur un domaine aussi large, nous avons développé les guides de résolution des problèmes suivants que vous souhaiterez peut-être examiner :

  • Résoudre les problèmes d’authentification d’identité Azure couvre les techniques d’examen des échecs d’authentification, les erreurs courantes pour les types d’informations d’identification dans la bibliothèque cliente Java d’Azure Identity et les étapes d’atténuation pour résoudre ces erreurs.
  • Résoudre les conflits de version des dépendances couvre les sujets liés au diagnostic, à l’atténuation et à la réduction des conflits de dépendances. Ces conflits peuvent survenir lorsque vous utilisez le Kit de développement logiciel (SDK) Azure pour les bibliothèques clientes Java dans des systèmes créés avec des outils tels que Maven et Gradle.
  • Résoudre les problèmes de mise en réseau couvre les sujets liés au débogage HTTP en dehors de la bibliothèque cliente, à l’aide d’outils tels que Fiddler et Wireshark.

En plus de ces guides de dépannage généraux, nous fournissons également des guides de résolution des problèmes spécifiques à la bibliothèque. Pour l’instant, les guides suivants sont disponibles :

Au-delà de ces documents, le contenu suivant fournit des conseils sur la meilleure utilisation de la journalisation et de la gestion des exceptions en ce qui concerne le Kit de développement logiciel (SDK) Azure pour Java.

Utiliser la journalisation dans le Kit de développement logiciel (SDK) Azure pour Java

Les sections suivantes décrivent comment activer différents types de journalisation.

Activer la journalisation du client

Pour résoudre les problèmes, il est important d’activer la journalisation pour surveiller le comportement de votre application. Les erreurs et avertissements dans les journaux fournissent généralement des insights utiles sur ce qui s’est passé et incluent parfois des actions correctives pour résoudre les problèmes. Le Kit de développement logiciel (SDK) Azure pour Java prend en charge la journalisation complète. Pour plus d’informations, consultez Configurer la journalisation dans le SDK Azure pour Java.

Activer la journalisation des requêtes/réponses HTTP

Lors de la résolution des problèmes, il est utile de passer en revue les requêtes HTTP lorsqu’elles sont envoyées et reçues entre les services Azure. Pour activer la journalisation de la charge utile de requête et de réponse HTTP, vous pouvez configurer presque tous les sdk Azure pour les bibliothèques clientes Java dans leurs générateurs de clients, comme illustré dans l’exemple suivant. En particulier, portez une attention particulière à la httpLogOptions méthode sur le générateur client et les valeurs d’énumération disponibles dans HttpLogDetailLevel.

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

Ce code modifie la journalisation des requêtes/réponses HTTP pour une instance cliente unique. Vous pouvez également configurer la journalisation des requêtes et réponses HTTP pour toute votre application en définissant la AZURE_HTTP_LOG_DETAIL_LEVEL variable d’environnement sur l’une des valeurs du tableau suivant. Il est important de noter que cette modification active la journalisation pour chaque client Azure qui prend en charge la journalisation des requêtes/réponses HTTP.

Valeur Niveau de journalisation
none La journalisation des requêtes/réponses HTTP est désactivée.
basic Journalise uniquement les URL, les méthodes HTTP et l’heure de fin de la requête.
headers Enregistre tout en BASIC, ainsi que tous les en-têtes de demande et de réponse.
body Enregistre tout dans BASIC, ainsi que tout le corps de la demande et de la réponse.
body_and_headers Enregistre tout dans HEADERS et BODY.

Remarque

Lorsque vous consignez des corps de demande et de réponse, assurez-vous qu’ils ne contiennent pas d’informations confidentielles. Lorsque vous consignez les paramètres et les en-têtes de requête, la bibliothèque cliente dispose d’un ensemble par défaut de paramètres de requête et d’en-têtes considérés comme fiables pour journaliser. Il est possible d’ajouter des paramètres de requête et des en-têtes supplémentaires qui sont sécurisés pour journaliser, comme illustré dans l’exemple suivant :

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

Gestion des exceptions dans le Kit de développement logiciel (SDK) Azure pour Java

La plupart des méthodes de service client Azure pour Java lèvent une sous-classe HttpResponseException ou une sous-classe plus spécifique en cas d’échec. Le HttpResponseException type inclut un objet d’erreur de réponse détaillé qui fournit des informations utiles sur ce qui s’est passé et inclut des actions correctives pour résoudre les problèmes courants. Vous trouverez ces informations d’erreur dans la propriété de message de l’objet HttpResponseException . Étant donné que ces exceptions sont des exceptions runtime, la documentation de référence JavaDoc ne les appelle pas explicitement.

L’exemple suivant montre comment intercepter cette exception avec un client synchrone :

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
}

Avec les clients asynchrones, vous pouvez intercepter et gérer des exceptions dans les rappels d’erreur, comme illustré dans l’exemple suivant :

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."));

Utiliser le suivi dans le Kit de développement logiciel (SDK) Azure pour Java

Le Kit de développement logiciel (SDK) Azure pour Java offre une prise en charge complète du suivi, ce qui vous permet de voir le flux d’exécution via votre code d’application et les bibliothèques clientes que vous utilisez. Vous pouvez activer le suivi dans les bibliothèques clientes Azure à l’aide du Kit de développement logiciel (SDK) OpenTelemetry ou à l’aide d’un agent compatible OpenTelemetry. OpenTelemetry est un framework d’observabilité open source très utilisé pour la génération, la capture et la collecte des données de télémétrie pour les logiciels cloud natifs.

Pour plus d’informations sur l’activation du suivi dans le Kit de développement logiciel (SDK) Azure pour Java, consultez Configurer le suivi dans le Kit de développement logiciel (SDK) Azure pour Java.

Étapes suivantes

Si les conseils de dépannage de cet article n’aident pas à résoudre les problèmes lorsque vous utilisez le Kit de développement logiciel (SDK) Azure pour les bibliothèques clientes Java, nous vous recommandons de déposer un problème dans le référentiel Azure SDK pour Java GitHub.