Utilizzare l'SDK di Azure per Java

L'SDK open source di Azure per Java semplifica il provisioning, la gestione e l'uso delle risorse di Azure nel codice delle applicazioni Java.

Dettagli importanti

  • Usare le librerie di Azure per comunicare con i servizi 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 Java.
  • Le librerie includono il supporto completo per i moduli Java, il che significa che sono completamente conformi ai requisiti di un modulo Java ed esportano tutti i pacchetti pertinenti per l'uso.
  • Azure SDK per Java è composto esclusivamente da molte singole librerie Java correlate a servizi di Azure specifici. L'SDK non include altri strumenti.
  • L'SDK dispone di librerie distinte di "gestione" e "client" (talvolta definite librerie "piano di gestione" e "piano dati"). Ogni set svolge scopi diversi e viene usato da diversi tipi di codice. Per altre informazioni, vedere le sezioni seguenti più avanti in questo articolo:
  • È possibile trovare la documentazione delle librerie nel Riferimento di Azure per Java, organizzato per servizio Azure, oppure nel browser API per Java, organizzato in base al nome del pacchetto.

Altri dettagli

  • Le Azure SDK per le librerie di Java si basano sull'API REST Azure sottostante, quindi è possibile usare tali API tramite paradigmi di 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 . Come progetto open source, i contributi sono benvenuti!
  • Il Azure SDK per Java viene aggiornato per condividere modelli cloud comuni, ad esempio protocolli di autenticazione, registrazione, traccia, protocolli di trasporto, risposte memorizzate nel buffer e tentativi.
    • Questa funzionalità condivisa è contenuta nella libreria di 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 in Java

Il Azure SDK per Java viene fornito con supporto per Java 8 e versioni successive, ma usa sempre la versione più recente Java supporto a lungo termine (LTS) in fase di sviluppo e quando viene rilasciata 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, sono disponibili librerie specifiche di Android nel progetto Azure SDK per Android.

Connettersi e usare le risorse di Azure con le librerie client

Le librerie client (o "data plane") consentono di scrivere codice di applicazioni Java per interagire con i servizi di cui è già stato effettuato il provisioning. Le librerie client esistono 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, in modo che il client non sia modificabile e 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. Questo requisito significa che in questi casi, ad esempio, è disponibile 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. Al generatore viene assegnato un nome simile a quello della classe client di sincronizzazione, con Builder incluso. Ad esempio, KeyVaultClientBuilder. Questo generatore include buildClient() e buildAsyncClient() metodi per creare istanze client, in base alle esigenze.

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

Esempio di librerie cliente

L'esempio di codice seguente illustra come creare un Key Vault sincrono KeyClient:

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

L'esempio di codice seguente illustra come creare un Key Vault asincrono KeyAsyncClient:

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 disponibile nella directory del progetto della libreria nel repository GitHub SDK. È anche possibile trovare altri frammenti di codice nella documentazione di riferimento e Esempi di Azure.

Effettuare il provisioning e gestire le 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 Azure dal codice dell'applicazione Java. È possibile trovare queste librerie nell'ID gruppo com.azure.resourcemanager Maven. Tutti i servizi di Azure hanno librerie di gestione corrispondenti.

Usando le librerie di gestione, è possibile scrivere script di configurazione e distribuzione per eseguire le stesse attività che è possibile eseguire tramite il portale Azure o interfaccia della riga di comando di Azure.

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

Esempio di biblioteche di gestione

Nell'esempio di codice seguente viene illustrato come creare un 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 disponibile nella directory del progetto della libreria nel repository GitHub SDK. È anche possibile trovare altri frammenti di codice nella documentazione di riferimento e Esempi di Azure.

Ottenere assistenza e connettersi al team SDK

Passaggi successivi

Ora che si capisce qual è il Azure SDK per Java, esplorare molti dei concetti trasversali che consentono di essere produttivi quando si usano le librerie. Gli articoli seguenti forniscono buoni punti di partenza: