Maintained with ☕️ by
IcePanel logo

New Azure Batch capabilities



In the last few weeks, new capabilities have been added to Azure Batch: * **The identity under which a batch task runs can be set and fixed across multiple tasks** * ​Until this update, the identity used for a task was automatically generated. For a Windows pool, an identity was scoped to an individual task, with each task running as a separate identity. For Linux, the identity was scoped to a pool, with the same identity used for all tasks running on the same pool. The automatic generation of the identity and especially the per-task identity for Windows made it difficult for a task to use a file share. It's now possible to have the same identity used by all tasks for a Windows pool, as well as set the identity that is used. * A job task now has a [userIdentity]( property, which has an [autoUser]( subproperty. * **Virtual machine pools can be created using custom images** * Sometimes installing software and configuring the OS can take too much time, significantly reducing VM utilization and efficiency—especially if the VMs are short lived. In some cases, it's worth producing a custom VM image that is used to create the VMs for a pool. The [virtual machine configuration]( for a pool now enables you to specify a custom image VHD. A Batch account with the pool allocation mode set to UserSubscription is required for you to be able to use custom images. To create an account, see [this blog post]( and [this article]( * **Virtual machine pool VMs can be part of a virtual network** * With a Batch account that has the pool allocation mode set to UserSubscription, a [virtual network can be specified]( for a pool that you configured by using virtual machine configuration. * **Virtual machine pool VMs can be created directly in your subscription** * ​A new poolAllocationMode property controls the subscription that is used to create pool VMs. When the property is set to BatchService, the default pool VMs are created using behind-the-scenes Batch service subscriptions. When the property is set to UserSubscription, pool VMs are created directly in the same subscription as the Batch account. For UserSubscription accounts, it's possible to use the Azure portal to view the virtual machine scale sets used to allocate the pool VMs, for example. A UserSubscription account is required for you to be able to create pools by using custom images or make virtual machine pool VMs part of a virtual network. * [This page]( details how to specify the pool allocation mode for a new Batch account. * **Azure Active Directory Authentication** * In addition to the existing Batch account name and key, it's possible to authenticate and use the Batch client APIs by using Azure Active Directory (Azure AD). For example, by using .NET, you can obtain a BatchClient through an Azure AD token. See [this article ]( more information. * **Task dependency improvements** * ​Until recently, a task that had dependent tasks would be scheduled to run only when all those dependent tasks succeeded. You can now configure task dependencies so that a task will run when the dependent tasks finish, whether they succeed or fail. See [this article]( for more information. * **Batch SDK updates** * The Java API for Batch is now generally available. * The .NET SDK has been updated a few times and is now version 6.1.0\. Some versions introduced breaking changes. For more information, see the [release history]( * Azure Batch is now supported in Azure CLI 2.0. * For a list of all Batch APIs and command-line tools, see the [Azure Batch tools and APIs]( article. * **Default account quota** * ​The default number of Batch accounts that can be created per subscription per region has increased from 1 to 3. * All batch quotas and the process for quota increases are detailed in [this article]( * **Task authentication token can be generated** * ​In some cases, a Batch task needs to use the Batch API to get status or create other tasks, for example. Instead of having to pass credentials to the task, the task configuration can now specify that an environment variable that contains a token is created, and that it will allow only operations on the job that created the task. * A new setting is present on [a task]( * **Support Windows Server 2016 cloud service pools** * [​OS Family 5](, which is Windows Server 2016, can now be specified for cloud service pools. * **Use Batch from your R session** * We released a lightweight R package built on top of Azure Batch, so that you can easily use the flexible Azure compute resources right from your R session. See this [this blog post]( for more details. * Batch * Features * Services * [ Batch](