De Azure SDK voor Java gebruiken

De opensource Azure SDK voor Java vereenvoudigt het inrichten, beheren en gebruiken van Azure-resources vanuit Java-toepassingscode.

Belangrijke informatie

  • De Azure-bibliotheken zijn hoe u communiceert met Azure-services vanuit Java-code die u lokaal of in de cloud uitvoert.
  • De bibliotheken ondersteunen Java 8 en hoger en worden getest op basis van zowel de Basislijn voor Java 8 als de nieuwste Java-release voor langetermijnondersteuning.
  • De bibliotheken bevatten volledige ondersteuning voor Java-modules, wat betekent dat ze volledig voldoen aan de vereisten van een Java-module en alle relevante pakketten voor gebruik exporteren.
  • De Azure SDK voor Java bestaat alleen uit veel afzonderlijke Java-bibliotheken die betrekking hebben op specifieke Azure-services. Er zijn geen andere hulpprogramma's in de SDK.
  • Er zijn verschillende bibliotheken voor beheer en client (ook wel 'beheervlak' en 'gegevensvlak' genoemd). Elke set dient verschillende doeleinden en wordt gebruikt door verschillende soorten code. Zie de volgende secties verderop in dit artikel voor meer informatie:
  • U vindt documentatie voor de bibliotheken in Azure for Java Reference , georganiseerd door Azure Service of de Java API-browser die is georganiseerd op pakketnaam.

Overige details

  • De Azure SDK voor Java-bibliotheken bouwen voort op de onderliggende Azure REST API, zodat u deze API's kunt gebruiken via bekende Java-paradigma's. U kunt de REST API echter altijd rechtstreeks vanuit Java-code gebruiken, indien gewenst.
  • U vindt de broncode voor de Azure-bibliotheken in de GitHub-opslagplaats. Als opensource-project zijn bijdragen welkom!
  • We werken momenteel de Azure SDK voor Java-bibliotheken bij om algemene cloudpatronen te delen, zoals verificatieprotocollen, logboekregistratie, tracering, transportprotocollen, gebufferde antwoorden en nieuwe pogingen.
  • Zie de ontwerprichtlijnen voor Java Azure SDK voor meer informatie over de richtlijnen die we toepassen op de bibliotheken.

Ondersteunde platforms voor Azure SDK voor Java

De Azure SDK voor Java wordt geleverd met ondersteuning voor Java 8 en hoger, maar we raden ontwikkelaars aan altijd de nieuwste lts-release (Java long-term support) te gebruiken in ontwikkeling en bij het vrijgeven naar productie. Het gebruik van de nieuwste LTS-release zorgt voor de beschikbaarheid van de nieuwste verbeteringen in Java, waaronder oplossingen voor fouten, prestatieverbeteringen en beveiligingsoplossingen. De Azure SDK voor Java bevat ook aanvullende ondersteuning voor latere versies van Java. Deze aanvullende ondersteuning verbetert de prestaties en bevat JDK-specifieke verbeteringen buiten de ondersteunde Java 8-basislijn.

De Azure SDK voor Java wordt getest en ondersteund in Windows, Linux en macOS. Het wordt niet getest op andere platforms die door de JDK worden ondersteund en biedt geen ondersteuning voor Android-implementaties. Ontwikkelaars die software willen ontwikkelen voor implementatie op Android-apparaten en die gebruikmaken van Azure-services, zijn er Android-specifieke bibliotheken beschikbaar in het Azure SDK voor Android-project .

Verbinding maken azure-resources gebruiken met clientbibliotheken

Met de clientbibliotheken (of 'gegevensvlak') kunt u Java-toepassingscode schrijven om te communiceren met al ingerichte services. Clientbibliotheken bestaan alleen voor services die ondersteuning bieden voor een client-API. U kunt ze identificeren omdat hun Maven-groeps-id is com.azure.

Alle Azure Java-clientbibliotheken volgen hetzelfde API-ontwerppatroon van het aanbieden van een Java Builder-klasse die verantwoordelijk is voor het maken van een exemplaar van een client. Met dit patroon wordt de definitie en instantiëring van de client gescheiden van de bewerking, zodat de client onveranderbaar kan zijn en daarom gemakkelijker te gebruiken is. Daarnaast volgen alle clientbibliotheken enkele belangrijke patronen:

  • Clientbibliotheken die zowel synchrone als asynchrone API's ondersteunen, moeten deze API's in afzonderlijke klassen aanbieden. Dit betekent dat er in deze gevallen bijvoorbeeld een KeyVaultClient voor synchronisatie-API's en asynchrone KeyVaultAsyncClient API's zou zijn.

  • Er is één opbouwklasse die verantwoordelijk is voor het bouwen van zowel de synchronisatie- als asynchrone API's. De opbouwfunctie heeft dezelfde naam als de synchronisatieclientklasse, inclusief Builder . Bijvoorbeeld: KeyVaultClientBuilder. Deze opbouwfunctie heeft buildClient() en buildAsyncClient() methoden voor het maken van clientexemplaren, indien van toepassing.

Vanwege deze conventies zijn alle klassen die eindigen Client onveranderbaar en bieden ze bewerkingen om te communiceren met een Azure-service. Alle klassen die eindigen op bewerkingen ClientBuilder voor het configureren en maken van een exemplaar van een bepaald clienttype.

Voorbeeld van clientbibliotheken

In het volgende codevoorbeeld ziet u hoe u een synchrone Sleutelkluis KeyClientmaakt:

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

In het volgende codevoorbeeld ziet u hoe u een asynchrone sleutelkluis KeyAsyncClientmaakt:

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

Zie het README.md-bestand in de projectmap van de bibliotheek in de SDK GitHub-opslagplaats voor meer informatie over het werken met elke clientbibliotheek. U kunt ook meer codefragmenten vinden in de referentiedocumentatie en de Azure-voorbeelden.

Azure-resources inrichten en beheren met beheerbibliotheken

Met de beheerbibliotheken (of 'beheervlak') kunt u Azure-resources maken, inrichten en anderszins beheren vanuit Java-toepassingscode. U vindt deze bibliotheken in de com.azure.resourcemanager Maven-groeps-id. Alle Azure-services hebben bijbehorende beheerbibliotheken.

Met de beheerbibliotheken kunt u configuratie- en implementatiescripts schrijven om dezelfde taken uit te voeren die u kunt uitvoeren via Azure Portal of de Azure CLI.

Alle Azure Java-beheerbibliotheken bieden een *Manager klasse als service-API, ComputeManager bijvoorbeeld voor Azure Compute-service of AzureResourceManager voor de aggregatie van populaire services.

Voorbeeld van beheerbibliotheken

In het volgende codevoorbeeld ziet u hoe u een ComputeManager:

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

In het volgende codevoorbeeld ziet u hoe u een nieuwe virtuele machine inricht:

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

In het volgende codevoorbeeld ziet u hoe u een bestaande virtuele machine kunt ophalen:

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

In het volgende codevoorbeeld ziet u hoe u de virtuele machine bijwerkt en een nieuwe gegevensschijf toevoegt:

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

Zie het README.md bestand in de projectmap van de bibliotheek in de SDK GitHub-opslagplaats voor meer informatie over het werken met elke beheerbibliotheek. U kunt ook meer codefragmenten vinden in de referentiedocumentatie en de Azure-voorbeelden.

Hulp krijgen en verbinding maken met het SDK-team

Volgende stappen

Nu u begrijpt wat de Azure SDK voor Java is, kunt u dieper ingaan op veel van de kruislingse concepten die bestaan om u productief te maken bij het gebruik van de bibliotheken. De volgende artikelen bieden goede uitgangspunten: