Simpler Azure Management Libraries for Java – Beta 3

Beta 3 adds support for the following Azure services and features

Virtual machine scale sets
Load balancers
Parallel creation of virtual machines and other resources
Virtual machine extensions
Key vault and
Batch

https://github.com/azure/azure-sdk-for-java

In July, we announced a developer preview of the new, simplified Azure management libraries for Java. Our goal is to improve the developer experience by providing a higher-level, object-oriented API, optimized for readability and writability. Thank you for trying the libraries and providing us with plenty of useful feedback.

Create a Virtual Machine Scale Set

You can create a virtual machine scale set instance by using another define() … create() method chain.

VirtualMachineScaleSet virtualMachineScaleSet = azure.virtualMachineScaleSets()
.define(vmssName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.withSku(VirtualMachineScaleSetSkuTypes.STANDARD_D3_V2)
.withExistingPrimaryNetworkSubnet(network, "Front-end")
.withPrimaryInternetFacingLoadBalancer(loadBalancer)
.withPrimaryInternetFacingLoadBalancerBackends(backendPoolName)
.withPrimaryInternetFacingLoadBalancerInboundNatPools(natPool50XXto22)
.withoutPrimaryInternalLoadBalancer()
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUserName(userName)
.withSsh(sshKey)
.withNewStorageAccount(storageAccountName1)
.withNewStorageAccount(storageAccountName2)
.withCapacity(2)
.create();

Create a Network Load Balancer

You can create a network load balancer instance by using another define() … create() method chain.

LoadBalancerloadBalancer=azure.loadBalancers().define(loadBalancerName)
.withRegion(Region.US_EAST)
.withExistingResourceGroup(rgName)
.definePublicFrontend(frontendName)
.withExistingPublicIpAddress(publicIpAddress)
.attach()

// Add a backend pool for HTTP
.defineBackend(backendPoolName)
.attach()

// Add a probe for HTTP
.defineHttpProbe(httpProbe)
.withRequestPath("/")
.withPort(80)
.attach()

// Add a load balancing rule that uses the above backend and probe
.defineLoadBalancingRule(httpLoadBalancingRule)
.withProtocol(TransportProtocol.TCP)
.withFrontend(frontendName)
.withFrontendPort(80)
.withProbe(httpProbe)
.withBackend(backendPoolName)
.attach()

// Add a NAT pool to enable direct VM connectivity for
// SSH to port 22
.defineInboundNatPool(natPool50XXto22)
.withProtocol(TransportProtocol.TCP)
.withFrontend(frontendName)
.withFrontendPortRange(5000,5099)
.withBackendPort(22)
.attach()
.create();

Sample Code

You can find plenty of sample code that illustrates management scenarios in Azure Virtual Machines, Virtual Machine Scale Sets, Storage, Networking, Resource Manager, Key Vault and Batch …

Service
Management

Virtual Machines

Manage virtual machine
Manage availability set
List virtual machine images
Manage virtual machines using VM extensions
List virtual machine extension images

Virtual Machines – parallel execution

Create multiple virtual machines in parallel
Create multiple virtual machines with network in parallel

Virtual Machine Scale Sets

Manage virtual machine scale sets (behind an Internet facing load balancer)

Storage

Manage storage accounts

Network

Manage virtual network
Manage network interface
Manage network security group
Manage IP address
Manage Internet facing load balancers
Manage internal load balancers

Resource Groups

Manage resource groups
Manage resources
Deploy resources with ARM templates
Deploy resources with ARM templates (with progress)

Key Vault

Manage key vaults

Batch

Manage batch accounts

Give it a try

You can run the samples above or go straight to our GitHub repo. Give it a try and let us know what do you think (via e-mail or comments below), particularly –

Usability and effectiveness of the new management libraries for Java?
What Azure services you would like to see supported soon?
What additional scenarios should be illustrated as sample code?

The next preview version of the Azure Management Libraries for Java is a work in-progress. We will be adding support for more Azure services and tweaking the API over the next few months.

You can find plenty of additional info about Java on Azure at http://azure.com/java.
Quelle: Azure

Published by