Usare Azure SDK per Java

Azure SDK per Java open source semplifica il provisioning, la gestione e l'uso delle risorse di Azure dal codice dell'applicazione Java.

Dettagli importanti

  • Le librerie di Azure consentono di comunicare con i servizi di Azure dal codice Java eseguito in locale o nel cloud.
  • Le librerie supportano Java 8 e versioni successive e vengono testate sia in base alla baseline Java 8 che alla versione più recente del supporto a lungo termine di Java.
  • Le librerie includono il supporto completo del modulo Java, il che significa che sono completamente conformi ai requisiti di un modulo Java ed esportare tutti i pacchetti pertinenti per l'uso.
  • Azure SDK per Java è composto esclusivamente da molte singole librerie Java correlate a servizi di Azure specifici. Non sono presenti altri strumenti nell'SDK.
  • Esistono librerie di "gestione" e "client" distinte (talvolta denominate librerie del "piano di gestione" e del "piano dati"). Ogni set serve a scopi diversi e viene usato da tipi di codice diversi. Per altre informazioni, vedere le sezioni seguenti più avanti in questo articolo:
  • È possibile trovare la documentazione per le librerie in Riferimento di Azure per Java organizzate dal servizio di Azure o dal browser API Java organizzato in base al nome del pacchetto.

Altri dettagli

  • Le librerie di Azure SDK per Java si basano sull'API REST di Azure sottostante, consentendo di usare tali API tramite paradigmi Java familiari. Tuttavia, è sempre possibile usare l'API REST direttamente dal codice Java, se si preferisce.
  • È possibile trovare il codice sorgente per le librerie di Azure nel repository GitHub. Essendo un progetto open source, i contributi sono benvenuti.
  • Attualmente si sta aggiornando azure SDK per le librerie Java per condividere modelli cloud comuni, ad esempio protocolli di autenticazione, registrazione, traccia, protocolli di trasporto, risposte memorizzate nel buffer e tentativi.
    • Questa funzionalità condivida è contenuta nella libreria azure-core.
  • Per altre informazioni sulle linee guida applicate alle librerie, vedere Le linee guida per la progettazione di Java Azure SDK.

Piattaforme supportate per Azure SDK per Java

Azure SDK per Java viene fornito con supporto per Java 8 e versioni successive, ma è consigliabile che gli sviluppatori usino sempre la versione LTS (Long-Term Support) più recente in fase di sviluppo e durante il rilascio nell'ambiente di produzione. L'uso della versione LTS più recente garantisce la disponibilità dei miglioramenti più recenti in Java, incluse correzioni di bug, miglioramenti delle prestazioni e correzioni di sicurezza. Azure SDK per Java include anche il supporto aggiuntivo per le versioni successive di Java. Questo supporto aggiuntivo migliora le prestazioni e include miglioramenti specifici di JDK oltre la baseline Java 8 supportata.

Azure SDK per Java è testato e supportato in Windows, Linux e macOS. Non viene testato su altre piattaforme supportate da JDK e non supporta le distribuzioni Android. Per gli sviluppatori che vogliono sviluppare software per la distribuzione in dispositivi Android e che usano i servizi di Azure, nel progetto Azure SDK per Android sono disponibili librerie specifiche di Android .

Connettersi e usare le risorse di Azure con le librerie client

Le librerie client (o "piano dati") consentono di scrivere codice dell'applicazione Java per interagire con i servizi di cui è già stato effettuato il provisioning. Le librerie client sono disponibili solo per i servizi che supportano un'API client. È possibile identificarli perché il relativo ID gruppo Maven è com.azure.

Tutte le librerie client Java di Azure seguono lo stesso modello di progettazione api che offre una classe di generatore Java responsabile della creazione di un'istanza di un client. Questo modello separa la definizione e la creazione di istanze del client dall'operazione, consentendo al client di essere non modificabile e quindi più facile da usare. Inoltre, tutte le librerie client seguono alcuni modelli importanti:

  • Le librerie client che supportano le API sincrone e asincrone devono offrire queste API in classi separate. Ciò significa che in questi casi ci sarebbero, ad esempio, un KeyVaultClient per le API di sincronizzazione e un KeyVaultAsyncClient per le API asincrone.

  • Esiste una singola classe builder che si assume la responsabilità di creare sia le API sincrone che asincrone. Il generatore è denominato in modo analogo alla classe client di sincronizzazione, con Builder incluso. Ad esempio: KeyVaultClientBuilder. Questo generatore include buildClient() metodi e buildAsyncClient() per creare istanze client, in base alle esigenze.

A causa di queste convenzioni, tutte le classi che terminano Client sono immutabili e forniscono operazioni per interagire con un servizio di Azure. Tutte le classi che terminano forniscono ClientBuilder operazioni per configurare e creare un'istanza di un determinato tipo di client.

Esempio di librerie client

L'esempio di codice seguente illustra come creare un insieme di credenziali KeyClientdelle chiavi sincrono:

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

L'esempio di codice seguente illustra come creare un insieme di credenziali KeyAsyncClientdelle chiavi asincrono:

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

Per altre informazioni sull'uso di ogni libreria client, vedere il file README.md che si trova nella directory del progetto della libreria nel repository GitHub sdk. È anche possibile trovare altri frammenti di codice nella documentazione di riferimento e negli esempi di Azure.

Effettuare il provisioning e la gestione di risorse di Azure con le librerie di gestione

Le librerie di gestione (o "piano di gestione") consentono di creare, effettuare il provisioning e gestire in altro modo le risorse di Azure dal codice dell'applicazione Java. Queste librerie sono disponibili nell'ID com.azure.resourcemanager gruppo Maven. Per tutti i servizi di Azure sono disponibili librerie di gestione corrispondenti.

Con le librerie di gestione è possibile scrivere script di configurazione e distribuzione per eseguire le stesse attività eseguibili tramite il portale di Azure o l'interfaccia della riga di comando di Azure.

Tutte le librerie di gestione Java di Azure forniscono una *Manager classe come API del servizio, ComputeManager ad esempio per il servizio di calcolo di Azure o AzureResourceManager per l'aggregazione dei servizi più diffusi.

Esempio di librerie di gestione

Nell'esempio di codice seguente viene illustrato come creare un oggetto ComputeManager:

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

L'esempio di codice seguente illustra come effettuare il provisioning di una nuova macchina virtuale:

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'esempio di codice seguente illustra come ottenere una macchina virtuale esistente:

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

L'esempio di codice seguente illustra come aggiornare la macchina virtuale e aggiungere un nuovo disco dati:

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

Per altre informazioni sull'uso di ogni libreria di gestione, vedere il file README.md che si trova nella directory del progetto della libreria nel repository GitHub sdk. È anche possibile trovare altri frammenti di codice nella documentazione di riferimento e negli esempi di Azure.

Ottenere assistenza e contattare il team dell'SDK

Passaggi successivi

Ora che si capisce qual è l'SDK di Azure per Java, è possibile approfondire molti dei concetti trasversali esistenti per aumentare la produttività quando si usano le librerie. Gli articoli seguenti forniscono buoni punti di partenza: