Usar o SDK do Azure para Java

O SDK do Azure de software livre para Java simplifica o provisionamento, o gerenciamento e o uso dos recursos do Azure com base no código de aplicativo do Java.

Detalhes importantes

  • As bibliotecas do Azure são como você se comunica com os serviços do Azure do código Java executado localmente ou na nuvem.
  • As bibliotecas oferecem suporte a Java 8 e posterior e são testadas em relação à linha de base do Java 8 e à versão mais recente de "suporte de longo prazo" do Java.
  • As bibliotecas incluem suporte completo a módulos Java, o que significa que elas estão totalmente em conformidade com os requisitos de um módulo Java e exportam todos os pacotes relevantes para uso.
  • O SDK do Azure para Java é composto unicamente por várias bibliotecas Java individuais relacionadas aos serviços específicos do Azure. Não há outras ferramentas no "SDK".
  • Há bibliotecas de "gerenciamento" e de "cliente" distintas (às vezes chamadas de bibliotecas de "plano de gerenciamento" e de "plano de dados"). Cada conjunto atende a diferentes finalidades e é usado por diferentes tipos de código. Para obter mais informações, consulte as seguintes seções posteriormente neste artigo:
  • Você pode encontrar a documentação das bibliotecas na Referência do Azure para Java organizada pelo Serviço do Azure ou no navegador da API Java organizado pelo nome do pacote.

Outros detalhes

  • As bibliotecas do SDK do Azure para Java criam sobre a API REST subjacente do Azure, permitindo que você use essas APIs por meio de paradigmas conhecidos do Java. No entanto, você sempre pode usar a API REST diretamente do código Java, se preferir.
  • Você pode encontrar o código-fonte para as bibliotecas do Azure no repositório do GitHub. Como um projeto de software livre, contribuições são bem-vindas!
  • Atualmente estamos atualizando as bibliotecas do SDK do Azure para Java para compartilhar padrões de nuvem comuns, como protocolos de autenticação, registro em log, rastreamento, protocolos de transporte, respostas em buffer e novas tentativas.
    • Essa funcionalidade compartilhada está presente na biblioteca azure-core.
  • Para obter mais informações sobre as diretrizes que aplicamos às bibliotecas, confira as Diretrizes de design do SDK do Azure para Java.

Plataformas compatíveis com o SDK do Azure para Java

O SDK do Azure para Java é fornecido com suporte para o Java 8 e posterior. No entanto, recomendamos que os desenvolvedores sempre usem a versão mais recente do LTS (suporte de longo prazo) do Java no desenvolvimento e ao liberar para a produção. Usar a versão mais recente do LTS garante a disponibilidade dos aprimoramentos mais recentes no Java, incluindo: correções de bug, aprimoramentos de desempenho e correções de segurança. Além disso, o SDK do Azure para Java inclui suporte adicional para versões posteriores do Java. Esse suporte adicional aprimora o desempenho, bem como inclui aprimoramentos específicos do JDK além da linha de base compatível com o Java 8.

O SDK do Azure para Java é testado e compatível com o Windows, o Linux e o macOS. Ele não é testado em outras plataformas compatíveis com o JDK. Além disso, ele não é compatível com implantações do Android. No projeto do SDK do Azure para Android, há bibliotecas específicas do Android disponíveis para desenvolvedores que usam os serviços do Azure e querem desenvolver softwares para implantação em dispositivos Android.

Conectar e usar os recursos do Azure com bibliotecas de clientes

As bibliotecas de clientes (ou "plano de dados") ajudam a escrever código de aplicativos Java para interagir com serviços já provisionados. As bibliotecas de clientes existem somente para os serviços que dão suporte a um API de cliente. Você pode identificá-las porque sua ID de grupo do Maven é com.azure.

Todas as bibliotecas de clientes Java do Azure seguem o mesmo padrão de design de API que oferece uma classe de construtor Java responsável pela criação de uma instância de um cliente. Esse padrão separa a definição e a instanciação do cliente de sua operação, permitindo que o cliente seja imutável e, portanto, mais fácil de usar. Além disso, todas as bibliotecas de clientes seguem alguns padrões importantes:

  • Bibliotecas de clientes que oferecem suporte a APIs síncronas e assíncronas devem oferecer essas APIs em classes separadas. Isso significa que, nesses casos, haveria, por exemplo, um KeyVaultClient para APIs síncronas e um KeyVaultAsyncClient para APIs assíncronas.

  • Há uma classe de construtor que assume a responsabilidade pela criação de APIs síncronas e assíncronas. O construtor é nomeado de modo semelhante à classe de cliente de sincronização, com Builder incluso. Por exemplo, KeyVaultClientBuilder. Este construtor tem os métodos buildClient() e buildAsyncClient() para criar instâncias de cliente, conforme apropriado.

Devido a essas convenções, todas as classes que terminam em Client são imutáveis e fornecem operações para interagir com um serviço do Azure. Todas as classes que terminam no ClientBuilder fornecem operações para configurar e criar uma instância de um determinado tipo de cliente.

Exemplo de bibliotecas de clientes

O seguinte exemplo de código mostra como criar um KeyClient do Key Vault síncrono:

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

O seguinte exemplo de código mostra como criar um KeyAsyncClient do Key Vault assíncrono:

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

Para obter mais informações sobre como trabalhar com cada biblioteca de clientes, confira o arquivo README.md localizado no diretório do projeto da biblioteca no repositório do GitHub do SDK. Também é possível encontrar mais trechos de código na documentação de referência e nas Amostras do Azure.

Provisionar e gerenciar recursos do Azure com bibliotecas de gerenciamento

As bibliotecas de gerenciamento (ou "plano de gerenciamento") ajudam a criar, provisionar e gerenciar recursos do Azure usando o código do aplicativo Java. Você pode encontrar essas bibliotecas na ID do grupo do Maven com.azure.resourcemanager. Todos os serviços do Azure têm bibliotecas de gerenciamento correspondentes.

Com as bibliotecas de gerenciamento, é possível gravar scripts de configuração e de implantação para executar as mesmas tarefas que você pode realizar pelo portal do Azure ou pela CLI do Azure.

Todas as bibliotecas de gerenciamento em Java do Azure fornecem uma classe *Manager como API de serviço, por exemplo, ComputeManager para o serviço de computação do Azure ou AzureResourceManager para a agregação de serviços populares.

Exemplo de bibliotecas de gerenciamento

O seguinte exemplo de código mostra como criar um ComputeManager:

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

O seguinte exemplo de código mostra como provisionar uma nova 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();

O seguinte exemplo de código mostra como obter uma máquina virtual existente:

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

O seguinte exemplo de código mostra como atualizar a máquina virtual e adicionar um disco de dados:

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

Para obter mais informações sobre como trabalhar com cada biblioteca de gerenciamento, confira o arquivo README.md localizado no diretório do projeto da biblioteca no repositório do GitHub do SDK. Também é possível encontrar mais trechos de código na documentação de referência e nas Amostras do Azure.

Obtenha ajuda e conecte-se com a equipe do SDK

Próximas etapas

Agora que você entende o que é o SDK do Azure para Java, pode aprofundar-se em muitos dos conceitos abrangentes que existem para torná-lo produtivo ao usar as bibliotecas. Os seguintes artigos são bons pontos de partida: