Usar o SDK do Azure para Java

O SDK do Azure de código aberto para Java simplifica o provisionamento, o gerenciamento e o uso de recursos do Azure a partir do código do aplicativo Java.

Detalhes importantes

  • As bibliotecas do Azure são como você se comunica com os serviços do Azure a partir do código Java que você executa localmente ou na nuvem.
  • As bibliotecas suportam Java 8 e posterior, e são testadas em relação à linha de base do Java 8 e à versão mais recente do Java 'long-term support'.
  • As bibliotecas incluem suporte total ao módulo Java, o que significa que elas são totalmente compatíveis com os requisitos de um módulo Java e exportam todos os pacotes relevantes para uso.
  • O SDK do Azure para Java é composto exclusivamente por muitas bibliotecas Java individuais relacionadas a serviços específicos do Azure. Não há outras ferramentas no "SDK".
  • Existem bibliotecas distintas de "gerenciamento" e "cliente" (às vezes referidas como bibliotecas de "plano de gerenciamento" e "plano de dados"). Cada conjunto serve propósitos diferentes e é usado por diferentes tipos de código. Para obter mais informações, consulte as seguintes seções mais adiante neste artigo:
  • Você pode encontrar a documentação para as bibliotecas no Azure for Java Reference organizado pelo Serviço do Azure ou no navegador da API Java organizado pelo nome do pacote.

Outros detalhes

  • O SDK do Azure para bibliotecas Java é construído sobre a API REST do Azure subjacente, permitindo que você use essas APIs por meio de paradigmas Java familiares. No entanto, você sempre pode usar a API REST diretamente do código Java, se preferir.
  • Você pode encontrar o código-fonte das bibliotecas do Azure no repositório do GitHub. Como um projeto de código aberto, as contribuições são bem-vindas!
  • No momento, estamos atualizando o SDK do Azure para bibliotecas Java para compartilhar padrões de nuvem comuns, como protocolos de autenticação, registro, rastreamento, protocolos de transporte, respostas em buffer e tentativas.
  • Para obter mais informações sobre as diretrizes que aplicamos às bibliotecas, consulte as Diretrizes de Design do SDK do Java Azure.

Plataformas suportadas para o SDK do Azure para Java

O SDK do Azure para Java é fornecido com suporte para Java 8 e posterior, mas recomendamos que os desenvolvedores sempre usem a versão mais recente do suporte de longo prazo (LTS) do Java no desenvolvimento e ao lançar para produção. O uso da versão LTS mais recente garante a disponibilidade das melhorias mais recentes no Java, incluindo correções de bugs, melhorias 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 melhora o desempenho e inclui aprimoramentos específicos do JDK além da linha de base Java 8 suportada.

O SDK do Azure para Java é testado e tem suporte no Windows, Linux e macOS. Ele não é testado em outras plataformas suportadas pelo JDK e não suporta implantações do Android. Para desenvolvedores que desejam desenvolver software para implantação em dispositivos Android e que usam os serviços do Azure, há bibliotecas específicas do Android disponíveis no projeto SDK do Azure para Android .

Conectar-se e usar recursos do Azure com bibliotecas de cliente

As bibliotecas do cliente (ou "plano de dados") ajudam você a escrever código de aplicativo Java para interagir com serviços já provisionados. As bibliotecas de cliente existem apenas para os serviços que suportam uma API de cliente. Você pode identificá-los porque o ID do grupo Maven é com.azure.

Todas as bibliotecas de cliente Java do Azure seguem o mesmo padrão de design de API de oferecer uma classe de construtor Java responsável pela criação de uma instância de um cliente. Este padrão separa a definição e 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 cliente seguem alguns padrões importantes:

  • As bibliotecas de cliente que suportam APIs síncronas e assíncronas devem oferecer essas APIs em classes separadas. O que isso significa é que, nesses casos, haveria, por exemplo, um para APIs de sincronização e um KeyVaultClientKeyVaultAsyncClient para APIs assíncronas.

  • Há uma única classe de construtor que assume a responsabilidade de criar as APIs de sincronização e assíncronas. O construtor é nomeado de forma semelhante à classe de cliente de sincronização, com Builder incluído. Por exemplo, KeyVaultClientBuilder. Este construtor tem buildClient() e buildAsyncClient() métodos 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 em ClientBuilder fornecem operações para configurar e criar uma instância de um tipo de cliente específico.

Exemplo de bibliotecas de cliente

O exemplo de código a seguir mostra como criar um Cofre de Chaves KeyClientsíncrono:

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

O exemplo de código a seguir mostra como criar um Cofre de Chaves KeyAsyncClientassí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 cliente, consulte o arquivo de README.md localizado no diretório de projeto da biblioteca no repositório GitHub do SDK. Você também pode encontrar mais trechos de código na documentação de referência e nos Exemplos do Azure.

Provisionar e gerenciar recursos do Azure com bibliotecas de gerenciamento

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

Com as bibliotecas de gerenciamento, você pode escrever scripts de configuração e implantação para executar as mesmas tarefas que você pode por meio do portal do Azure ou da CLI do Azure.

Todas as bibliotecas de gerenciamento Java do Azure fornecem uma *Manager classe 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 exemplo de código a seguir mostra como criar um ComputeManagerarquivo :

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

O exemplo de código a seguir 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 exemplo de código a seguir mostra como obter uma máquina virtual existente:

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

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

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

Para obter mais informações sobre como trabalhar com cada biblioteca de gerenciamento, consulte o arquivo README.md localizado no diretório de projeto da biblioteca no repositório GitHub do SDK. Você também pode encontrar mais trechos de código na documentação de referência e nos Exemplos do Azure.

Obtenha ajuda e conecte-se com a equipe do SDK

Próximos passos

Agora que você entende o que é o SDK do Azure para Java, pode dar um mergulho profundo em muitos dos conceitos transversais que existem para torná-lo produtivo ao usar as bibliotecas. Os seguintes artigos fornecem bons pontos de partida: