Utiliser le SDK Azure pour Java

Le Kit de développement logiciel (SDK) open source Azure pour Java simplifie l’approvisionnement, la gestion et l’utilisation des ressources Azure à partir du code d’application Java.

Détails importants

  • Les bibliothèques Azure sont le moyen par lequel vous communiquez avec des services Azure à partir de code Java que vous exécutez localement ou dans le cloud.
  • Les bibliothèques prennent en charge Java 8 et les versions ultérieures, et sont testées par rapport à la référence Java 8 et à la version la plus récente du « support à long terme » Java.
  • Les bibliothèques incluent une prise en charge complète du module Java, ce qui signifie qu’elles sont entièrement conformes aux exigences des modules Java et exportent tous les packages appropriés à utiliser.
  • Le kit SDK Azure pour Java se compose de nombreuses bibliothèques Java individuelles, associées à des services Azure spécifiques. Il n’existe aucun autre outil dans le « kit SDK ».
  • Il existe des bibliothèques de « gestion » et « clientes » distinctes (parfois appelées bibliothèques « plan de gestion » et « plan de données »). Chaque ensemble remplit des objectifs différents et est utilisé par différents types de code. Pour plus d’informations, consultez les sections suivantes plus loin dans cet article :
  • Vous pouvez retrouver la documentation des bibliothèques dans la Référence d’Azure pour Java, qui est organisée par service Azure, ou dans le navigateur de l’API Java, qui est organisé par nom de package.

Autres détails

  • Les bibliothèques Azure SDK pour Java sont ajoutées sur l’API REST Azure sous-jacente, ce qui vous permet d’utiliser ces API via les paradigmes Java bien connus. Toutefois, vous pouvez toujours utiliser l’API REST directement à partir du code Java, si vous préférez.
  • Vous trouverez le code source des bibliothèques Azure dans le référentiel GitHub. Comme il s’agit d’un projet open source, les contributions sont les bienvenues.
  • Nous mettons actuellement à jour le SDK Azure pour les bibliothèques Java afin de partager des modèles cloud courants tels que les protocoles d’authentification, la journalisation, le traçage, les protocoles de transport, les réponses mises en mémoire tampon et les nouvelles tentatives.
    • Ces fonctionnalités partagées sont incluses dans la bibliothèque azure-core.
  • Pour plus d’informations sur les instructions que nous appliquons aux bibliothèques, consultez les instructions de conception du SDK Azure pour Java.

Plateformes prises en charge pour le SDK Azure pour Java

Le SDK Azure pour Java prend en charge Java 8 et ultérieur, mais nous recommandons aux développeurs de toujours utiliser la dernière version LTS (prise en charge à long terme) de Java en développement et en production. L’utilisation de la dernière version LTS garantit la disponibilité des dernières améliorations de Java, notamment les correctifs de bogues, les améliorations des performances et les correctifs de sécurité. Par ailleurs, le SDK Azure pour Java offre une prise en charge supplémentaire des versions ultérieures de Java. Cette prise en charge supplémentaire améliore les performances et comprend des améliorations spécifiques au JDK au-delà de la base de référence Java 8 prise en charge.

Le SDK Azure pour Java est testé et pris en charge sur Windows, Linux et macOS. Il n’est pas testé sur les autres plateformes prises en charge par le JDK et ne prend pas en charge les déploiements Android. Pour les développeurs de logiciels qui souhaitent déployer sur des appareils Android et qui utilisent des services Azure, il existe des bibliothèques spécifiques à Android disponibles dans le projet SDK Azure pour Android.

Se connecter à des ressources Azure et les utiliser avec des bibliothèques clientes

Les bibliothèques clientes (ou « plan de données ») du SDK vous aident à écrire du code d’application Java pour interagir avec les services déjà approvisionnés. Les bibliothèques clientes existent uniquement pour les services qui prennent en charge une API cliente. Vous pouvez les identifier, car leur ID de groupe Maven est com.azure.

Toutes les bibliothèques clientes Azure Java suivent le même modèle de conception d’API pour offrir une classe de générateur Java qui est responsable de la création d’une instance d’un client. Ce modèle sépare la définition et l’instanciation du client de son fonctionnement, ce qui permet au client d’être immuable et par conséquent plus facile à utiliser. En outre, toutes les bibliothèques clientes suivent quelques modèles importants :

  • Les bibliothèques clientes qui prennent en charge les API synchrones et asynchrones doivent proposer ces API dans des classes distinctes. Cela signifie que dans ce cas, il y aurait, par exemple, un KeyVaultClient pour les API synchrones et un KeyVaultAsyncClient pour les API asynchrones.

  • Il existe une seule classe de générateur qui est responsable de la génération des API synchrones et asynchrones. Le générateur porte le même nom que la classe de client synchrone, avec Builder inclus. Par exemple : KeyVaultClientBuilder. Ce générateur comporte des méthodes buildClient() et buildAsyncClient() pour créer des instances de clients le cas échéant.

En raison de ces conventions, toutes les classes se terminant par Client sont immuables et fournissent des opérations pour interagir avec les services Azure. Toutes les classes qui se terminent par ClientBuilder fournissent des opérations pour configurer et créer une instance d’un type de client particulier.

Exemples de bibliothèques clientes

L’exemple de code suivant montre comment créer un KeyClient Key Vault synchrone :

KeyClient client = new KeyClientBuilder()
        .endpoint(<your Key Vault URL>)
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

L’exemple de code suivant montre comment créer un KeyAsyncClient Key Vault asynchrone :

KeyAsyncClient client = new KeyClientBuilder()
        .endpoint(<your Key Vault URL>)
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildAsyncClient();

Pour plus d’informations sur l’utilisation de chaque bibliothèque cliente, consultez le fichier README.md ou situé dans le dossier de projet de la bibliothèque, dans le référentiel GitHub du SDK. Vous trouverez également d’autres extraits de code dans la documentation de référence et la page Exemples Azure.

Approvisionner et gérer des ressources Azure avec des bibliothèques de gestion

Les bibliothèques de gestion (ou « plans de gestion ») vous aident à créer, approvisionner et gérer des ressources Azure à partir du code de l’application Java. Vous pouvez trouver ces bibliothèques dans l’ID du groupe Maven com.azure.resourcemanager. Tous les services Azure ont des bibliothèques de gestion correspondantes.

Grâce aux bibliothèques de gestion, vous pouvez écrire des scripts de configuration et de déploiement pour effectuer les mêmes tâches que celles que vous pouvez effectuer à l’aide du Portail Azure ou d’Azure CLI.

Toutes les bibliothèques de gestion Azure pour Java fournissent une classe *Manager en tant qu’API de service, par exemple, ComputeManager pour le service de calcul Azure ou AzureResourceManager pour l’agrégation de services populaires.

Exemple de bibliothèques de gestion

L’exemple de code suivant montre comment créer un ComputeManager :

ComputeManager computeManager = ComputeManager
    .authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE));

L’exemple de code suivant montre comment approvisionner une nouvelle machine virtuelle :

VirtualMachine virtualMachine = computeManager.virtualMachines()
    .define(<your virtual machine>)
    .withRegion(Region.US_WEST)
    .withExistingResourceGroup(<your resource group>)
    .withNewPrimaryNetwork("10.0.0.0/28")
    .withPrimaryPrivateIPAddressDynamic()
    .withoutPrimaryPublicIPAddress()
    .withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_18_04_LTS)
    .withRootUsername(<virtual-machine username>)
    .withSsh(<virtual-machine SSH key>)
    .create();

L’exemple de code suivant montre comment récupérer une machine virtuelle existante :

VirtualMachine virtualMachine = computeManager.virtualMachines()
    .getByResourceGroup(<your resource group>, <your virtual machine>);

L’exemple de code suivant montre comment mettre à jour la machine virtuelle et ajouter un nouveau disque de données :

virtualMachine.update()
    .withNewDataDisk(10)
    .apply();

Pour plus d’informations sur l’utilisation de chaque bibliothèque de gestion, consultez le fichier README.md ou situé dans le dossier de projet de la bibliothèque, dans le référentiel GitHub du SDK. Vous trouverez également d’autres extraits de code dans la documentation de référence et la page Exemples Azure.

Obtenez de l’aide et communiquez avec l’équipe du Kit de développement logiciel (SDK)

Étapes suivantes

Maintenant que vous savez ce qu’est le SDK Azure pour Java, vous pouvez vous plonger dans la plupart des concepts généraux qui existent pour vous rendre productif lors de l’utilisation des bibliothèques. Les articles suivants fournissent des points de départ intéressants :