Uso de Azure SDK para Java

Azure SDK para Java es de código abierto y simplifica el aprovisionamiento, la administración y el uso de los recursos de Azure desde el código de aplicación de Java.

Detalles importantes

  • Las bibliotecas de Azure constituyen la manera de comunicarse con los servicios de Azure desde el código de Java que se ejecuta localmente o en la nube.
  • Las bibliotecas admiten Java 8 y versiones posteriores, y se prueban en la base de referencia de Java 8 y en la versión más reciente de soporte técnico de Java a largo plazo.
  • Las bibliotecas incluyen compatibilidad completa con los módulos de Java, lo que significa que son totalmente compatibles con los requisitos de un módulo de Java y exportan todos los paquetes necesarios para su uso.
  • Azure SDK para Java se compone exclusivamente de muchas bibliotecas de Java individuales relacionadas con servicios específicos de Azure. No hay otras herramientas en el "SDK".
  • Hay distintas bibliotecas de "administración" y "cliente" (a veces llamadas bibliotecas del "plano de administración" y del "plano de datos"). Cada conjunto tiene distintos objetivos y se usa en diferentes tipos de código. Para obtener más información, consulte las secciones siguientes más adelante en este artículo:
  • Puede encontrar documentación sobre las bibliotecas en la referencia de Azure para Java, que se organiza por servicios de Azure, o en el explorador de API de Java, que se organiza por nombres de paquete.

Otros detalles

  • Las bibliotecas de Azure SDK para Java se crean a partir de la API REST de Azure subyacente, lo que permite usar esas API con los paradigmas conocidos de Java. Sin embargo, siempre puede usar la API REST directamente desde el código de Java, si lo desea.
  • Puede encontrar el código fuente de las bibliotecas de Azure en el repositorio de GitHub. Como proyecto de código abierto, todas las contribuciones son bienvenidas.
  • Actualmente estamos actualizando las bibliotecas de Azure SDK para Java para compartir patrones de nube comunes, como protocolos de autenticación, registros, seguimientos, protocolos de transporte, respuestas almacenadas en búfer y reintentos.
    • Esta funcionalidad compartida está contenida en la biblioteca azure-core.
  • Para obtener más información sobre las directrices que se aplican a las bibliotecas, consulte las directrices de diseño de Azure SDK para Java.

Plataformas compatibles con Azure SDK para Java

Azure SDK para Java incluye compatibilidad con Java 8 y versiones posteriores, pero se recomienda que los desarrolladores usen siempre la versión más reciente del soporte técnico a largo plazo (LTS) de Java durante el desarrollo y al publicar en producción. El uso de la versión de LTS más reciente garantiza la disponibilidad de las mejoras más recientes en Java, incluidas correcciones de errores, mejoras de rendimiento y correcciones de seguridad. Además, Azure SDK para Java incluye compatibilidad adicional con versiones posteriores de Java. Esta compatibilidad adicional mejora el rendimiento e incluye mejoras específicas de JDK más allá de la línea de base de Java 8 admitida.

Azure SDK para Java se ha probado y se admite en Windows, Linux y macOS. No se ha probado en otras plataformas compatibles con JDK y no admite implementaciones de Android. Para los desarrolladores que quieran desarrollar software para la implementación en dispositivos Android y que usen servicios de Azure, hay bibliotecas específicas de Android disponibles en el proyecto Azure SDK para Android.

Conexión y uso de los recursos de Azure con bibliotecas cliente

Las bibliotecas cliente (o del "plano de datos") le ayudan a escribir código de aplicación de Java para interactuar con servicios ya aprovisionados. Las bibliotecas cliente solo existen para los servicios que admiten una API de cliente. Puede reconocerlas porque su identificador de grupo de Maven es com.azure.

Todas las bibliotecas cliente de Azure para Java siguen el mismo modelo de diseño de API que ofrece una clase de generador de Java que es responsable de crear una instancia de un cliente. Este modelo separa la definición y la creación de instancias del cliente de su funcionamiento, lo que permite que el cliente sea inmutable y, por tanto, más fácil de usar. Además, todas las bibliotecas cliente siguen algunos patrones importantes:

  • Las bibliotecas cliente que admiten las API sincrónicas y asincrónicas deben ofrecer estas API en clases independientes. Esto significa que, en estos casos, habría, por ejemplo, una clase KeyVaultClient para las API sincrónicas y una clase KeyVaultAsyncClient para las API asincrónicas.

  • Hay una clase de generador única que asume la responsabilidad de crear las API sincrónicas y asincrónicas. El generador se denomina de forma similar a la clase de cliente sincrónica, con Builder incluido. Por ejemplo, KeyVaultClientBuilder. Este generador tiene métodos buildClient() y buildAsyncClient() para crear instancias de cliente, según corresponda.

Debido a estas convenciones, todas las clases que terminan en Client son inmutables y ofrecen operaciones para interactuar con un servicio de Azure. Todas las clases que terminan en ClientBuilder ofrecen operaciones para configurar y crear una instancia de un tipo de cliente determinado.

Ejemplo de bibliotecas cliente

En el siguiente ejemplo de código se muestra cómo crear una instancia de KeyClient de Key Vault sincrónica:

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

En el siguiente ejemplo de código se muestra cómo crear una instancia KeyAsyncClient de Key Vault asincrónica:

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

Para obtener más información sobre cómo trabajar con cada biblioteca cliente, consulte el archivo README.md, que se encuentra en el directorio de proyecto de la biblioteca en el repositorio de GitHub del SDK. También encontrará otros fragmentos de código en la documentación de referencia y en los ejemplos de Azure.

Aprovisionamiento y administración de recursos de Azure con bibliotecas de administración

Las bibliotecas de administración (o "plano de administración") le ayudan a crear, aprovisionar y en otros casos administrar recursos de Azure desde el código de aplicación de Java. Puede encontrar estas bibliotecas en el identificador de grupo de Maven com.azure.resourcemanager. Todos los servicios de Azure tienen bibliotecas de administración correspondientes.

Con las bibliotecas de administración, puede escribir scripts de configuración e implementación para llevar a cabo las mismas tareas que puede realizar mediante Azure Portal o la CLI de Azure.

Todas las bibliotecas de administración de Azure para Java proporcionan una clase *Manager como API de servicio; por ejemplo, ComputeManager para el servicio de proceso de Azure o AzureResourceManager para la agregación de servicios populares.

Ejemplo de bibliotecas de administración

En el siguiente ejemplo de código se muestra cómo crear una instancia de ComputeManager:

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

En el siguiente ejemplo de código se muestra cómo aprovisionar una nueva máquina virtual:

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();

En el siguiente ejemplo de código se muestra cómo obtener una máquina virtual existente:

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

En el siguiente ejemplo de código se muestra cómo actualizar la máquina virtual y agregar un nuevo disco de datos:

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

Para obtener más información sobre cómo trabajar con cada biblioteca de administración, consulte el archivo README.md, que se encuentra en el directorio de proyecto de la biblioteca en el repositorio de GitHub del SDK. También encontrará otros fragmentos de código en la documentación de referencia y en los ejemplos de Azure.

Ayuda y contacto con el equipo de SDK

Pasos siguientes

Ahora que comprende qué es Azure SDK para Java, puede profundizar en muchos de los conceptos transversales que existen para ayudarle a ser productivo al usar las bibliotecas. En los artículos siguientes cuenta con buenos puntos de partida: