Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Operations provided by the Batch service REST API may have multiple versions for backwards compatibility as the API evolves over time. You must specify which version of an operation you wish to use when it is called by providing the version with your REST call. If your application calls an older version of an operation, you can choose to continue calling the older version, or modify your code to call a newer version. If the version is not specified or an incorrect version is specified, then an error is returned.
To specify which version of an operation to use, set the api-version query parameter. The version is of the format Group.Major.Minor where Group is in the format YYYY-MM-DD and Major is an integer and Minor is an integer.
Latest version: 2025-06-01
Job level FIFO
- Added
BatchJobDefaultOrdertypes. - Extended BatchTaskSchedulingPolicy with a new
jobDefaultOrderproperty to support job-level FIFO scheduling.
- Added
CMK support on Pools
- Added
DiskCustomerManagedKeyandDiskEncryptionSetParametersfor customer-managed key (CMK) support on pools. - Extended
DiskEncryptionConfigurationwith a newcustomerManagedKeyproperty. - Extended
ManagedDiskwith a newdiskEncryptionSetproperty. - Added
BatchPoolIdentityReferencefor referencing managed identities in disk encryption scenarios.
- Added
IPv6 support on Pools
- Added
ipv6AddresstoBatchNode. - Added
ipv6RemoteLoginIPAddressandipv6RemoteLoginPorttoBatchNodeRemoteLoginSettings.
- Added
Metadata Security Protocol Support on Pools
- Added
HostEndpointSettingsandHostEndpointSettingsModeTypes. - Added
ProxyAgentSettings. - Extended
SecurityProfilewith a newproxyAgentSettingsproperty for metadata security protocol support.
- Added
IP Tag Support
- Added
IPFamilyandIPTagtypes. - Extended
BatchPublicIpAddressConfigurationwith newipFamiliesandipTagsproperties for IP tag support.
- Added
[Breaking] Removed Support for Certificates:
- Removed Certificate APIs:
Certificate_Add,Certificate_Get,Certificate_List,Certificate_CancelDeletion, andCertificate_Delete. - Removed Certificate Models/Enums:
Certificate,CertificateDelete,CertificateFormat,CertificateReference,CertificateState,CertificateStoreLocation, andCertificateVisibility - Removed Certificate-related properties:
PoolSpecification.CertificateReferences,CloudPool.CertificateReferences,PoolAddParameter.CertificateReferences,ComputeNode.CertificateReferences,PoolUpdatePropertiesParameter.CertificateReferences, andPoolPatchParameter.CertificateReferences.
- Removed Certificate APIs:
[Breaking] Removed
DataDisk.StorageAccountType. UseDataDisk.ManagedDisk.StorageAccountTypeinstead.[Breaking] Removed
NodeCommunicationModemodel and propertiesCloudPool.targetNodeCommunicationMode,CloudPool.currentNodeCommunicationMode,PoolAddParameter.targetNodeCommunicationMode,PoolUpdatePropertiesParameter.targetNodeCommunicationMode,PoolPatchParameter.targetNodeCommunicationMode, andPoolSpecification.targetNodeCommunicationMode.[Breaking] The following Models were Renamed:
Old Model New Model AccountListSupportedImagesResult BatchAccountListSupportedImagesResult AffinityInformation BatchAffinityInfo ApplicationListResult BatchApplicationListResult ApplicationPackageReference BatchApplicationPackageReference ApplicationSummary BatchApplication AutomaticOSUpgradePolicy AutomaticOsUpgradePolicy AutoPoolSpecification BatchAutoPoolSpecification CIFSMountConfiguration CifsMountConfiguration CloudJob BatchJob CloudJobListPreparationAndReleaseTaskStatusResult BatchJobPreparationAndReleaseTaskStatusListResult CloudJobListResult BatchJobListResult CloudJobSchedule BatchJobSchedule CloudJobScheduleListResult BatchJobScheduleListResult CloudPool BatchPool CloudPoolListResult BatchPoolListResult CloudTask BatchTask CloudTaskListResult BatchTaskListResult ComputeNode BatchNode ComputeNodeDeallocationOption BatchNodeDeallocationOption ComputeNodeEndpointConfiguration BatchNodeEndpointConfiguration ComputeNodeError BatchNodeError ComputeNodeGetRemoteLoginSettingsResult BatchNodeRemoteLoginSettings ComputeNodeIdentityReference BatchNodeIdentityReference ComputeNodeInformation BatchNodeInfo ComputeNodeListResult BatchNodeListResult ComputeNodeUser BatchNodeUserCreateOptions ContainerConfiguration BatchContainerConfiguration ContainerRegistry ContainerRegistryReference DiffDiskSettings BatchDiffDiskSettings ErrorCategory BatchErrorSourceCategory ErrorMessage BatchErrorMessage HttpHeader OutputFileUploadHeader ImageInformation BatchSupportedImage ImageReference BatchVmImageReference InboundNATPool BatchInboundNatPool IPAddressProvisioningType IpAddressProvisioningType JobAddParameter BatchJobCreateOptions JobConstraints BatchJobConstraints JobDisableParameter BatchJobDisableOptions JobExecutionInformation BatchJobExecutionInfo JobManagerTask BatchJobManagerTask JobNetworkConfiguration BatchJobNetworkConfiguration JobPatchParameter BatchJobUpdateOptions JobPreparationAndReleaseTaskExecutionInformation BatchJobPreparationAndReleaseTaskStatus JobPreparationTask BatchJobPreparationTask JobPreparationTaskExecutionInformation BatchJobPreparationTaskExecutionInfo JobReleaseTask BatchJobReleaseTask JobReleaseTaskExecutionInformation BatchJobReleaseTaskExecutionInfo JobScheduleAddParameter BatchJobScheduleCreateOptions JobScheduleExecutionInformation BatchJobScheduleExecutionInfo JobSchedulePatchParameter BatchJobScheduleUpdateOptions JobScheduleState BatchJobScheduleState JobScheduleStatistics BatchJobScheduleStatistics JobSchedulingError BatchJobSchedulingError JobSpecification BatchJobSpecification JobState BatchJobState JobStatistics BatchJobStatistics JobTerminateParameter BatchJobTerminateOptions MetadataItem BatchMetadataItem NFSMountConfiguration NfsMountConfiguration NodeAgentInformation BatchNodeAgentInfo NodeCommunicationMode BatchNodeCommunicationMode NodeCounts BatchNodeCounts NodeDeallocateParameter BatchNodeDeallocateOptions NodeDisableSchedulingParameter BatchNodeDisableSchedulingOptions NodeFile BatchNodeFile NodeFileListResult BatchNodeFileListResult NodePlacementConfiguration BatchNodePlacementConfiguration NodePlacementPolicyType BatchNodePlacementPolicyType NodeRebootParameter BatchNodeRebootOptions NodeReimageParameter BatchNodeReimageOptions NodeRemoveParameter BatchNodeRemoveOptions NodeUpdateUserParameter BatchNodeUserUpdateOptions NodeVMExtension BatchNodeVMExtension NodeVMExtensionList BatchNodeVMExtensionListResult OnAllTasksComplete BatchAllTasksCompleteMode OnTaskFailure BatchTaskFailureMode OSDisk BatchOsDisk OutputFileUploadOptions OutputFileUploadConfig PoolAddParameter BatchPoolCreateOptions PoolEnableAuto -ScaleParameter [BatchPoolEnableAuto -ScaleOptions](/rest/api/batchservice/pools/enable-auto-scale#batchpoolenableauto -scaleoptions) PoolEndpointConfiguration BatchPoolEndpointConfiguration PoolEvaluateAuto -ScaleParameter [BatchPoolEvaluateAuto -ScaleOptions](/rest/api/batchservice/pools/evaluate-auto-scale#batchpoolevaluateauto -scaleoptions) PoolInformation BatchPoolInfoUpdate PoolListUsageMetricsResult BatchPoolListUsageMetricsResult PoolNodeCounts BatchPoolNodeCounts PoolNodeCountsListResult BatchPoolNodeCountsListResult PoolPatchParameter BatchPoolUpdateOptions PoolResizeParameter BatchPoolResizeOptions PoolSpecification BatchPoolSpecification PoolStatistics BatchPoolStatistics PoolUpdatePropertiesParameter BatchPoolReplaceOptions PoolUsageMetrics BatchPoolUsageMetrics PublicIPAddressConfiguration BatchPublicIpAddressConfiguration RecentJob RecentBatchJob ResourceStatistics BatchPoolResourceStatistics Schedule BatchJobScheduleConfiguration StartTask BatchStartTask StartTaskInformation BatchStartTaskInfo SubtaskInformation BatchSubtask SubtaskState BatchSubtaskState TaskAddCollectionParameter BatchTaskGroup TaskAddCollectionResult BatchCreateTaskCollectionResult TaskAddParameter BatchTaskCreateOptions TaskAddResult BatchTaskCreateResult TaskConstraints BatchTaskConstraints TaskContainerExecutionInformation BatchTaskContainerExecutionInfo TaskContainerSettings BatchTaskContainerSettings TaskCounts BatchTaskCounts TaskCountsResult BatchTaskCountsResult TaskDependencies BatchTaskDependencies TaskExecutionInformation BatchTaskExecutionInfo TaskExecutionResult BatchTaskExecutionResult TaskFailureInformation BatchTaskFailureInfo TaskIdRange BatchTaskIdRange TaskInformation BatchTaskInfo TaskSchedulingPolicy BatchTaskSchedulingPolicy TaskSlotCounts BatchTaskSlotCounts TaskState BatchTaskState TaskStatistics BatchTaskStatistics UefiSettings BatchUefiSettings UploadBatchServiceLogsConfiguration UploadBatchServiceLogsOptions UsageStatistics BatchPoolUsageStatistics UserAssignedIdentity BatchUserAssignedIdentity VMDiskSecurityProfile BatchVmDiskSecurityProfile
Previous Versions
Previous versions include:
- 2024-07-01.20.0
- 2024-02-01.19.0
- 2023-11-01.18.0
- 2023-05-01.17.0
- 2022-10-01.16.0
- 2022-01-01.15.0
- 2021-06-01.14.0
- 2020-09-01.12.0
- 2020-03-01.11.0
- 2019-08-01.10.0
- 2019-06-01.9.0
- 2018-12-01.8.0
- 2018-08-01.7.0
- 2018-03-01.6.1
- 2017-09-01.6.0
- 2017-06-01.5.1
- 2017-05-01.5.0
- 2017-01-01.4.0
- 2016-07-01.3.1
- 2016-02-01.3.0
- 2015-12-01.2.2
- 2015-11-01.2.1
Version: 2024-07-01.20.0
- Added compute node deallocation and start operations:
- Added new
ComputeNode_Deallocateoperation (POST /pools/{poolId}/nodes/{nodeId}/deallocate) to deallocate an idle or running compute node. - Added new
ComputeNode_Startoperation (POST /pools/{poolId}/nodes/{nodeId}/start) to restart a previously deallocated compute node. - Added new
NodeDeallocateParametermodel with anodeDeallocateOptionproperty specifying what to do with running tasks during deallocation.
- Added new
- [Breaking] Removed
ComputeNode_GetRemoteDesktopoperation (GET /pools/{poolId}/nodes/{nodeId}/rdp). This operation was only applicable to Cloud Service configuration pools. - [Breaking] Removed Cloud Service Configuration pool support:
- Removed
CloudServiceConfigurationmodel. - Removed
cloudServiceConfigurationproperty fromCloudPool,PoolAddParameter, andPoolSpecification.
- Removed
- [Breaking] Removed
applicationLicensesproperty fromCloudPool,PoolAddParameter, andPoolSpecification. - Added container bind mount support for tasks:
- Added new
ContainerHostBatchBindMountEntrymodel withsourceandisReadOnlyproperties. - Added new
ContainerHostDataPathenum with valuesShared,Startup,VfsMounts,Task,JobPrep, andApplications. - Added new
containerHostBatchBindMountsproperty toTaskContainerSettings.
- Added new
- Added Confidential VM support:
- Added new
VMDiskSecurityProfilemodel with asecurityEncryptionTypeproperty. - Added new
securityProfileproperty toManagedDisk. - Added
confidentialVMas a new value forSecurityProfile.securityType.
- Added new
- Added
deallocatedanddeallocatingas new values forComputeNodeState. - Added new required
deallocatedanddeallocatingproperties toNodeCounts. - Added Shared Gallery and Community Gallery image reference support:
- Added
sharedGalleryImageIdandcommunityGalleryImageIdproperties toImageReference.
- Added
- Added
skipWithdrawFromVNetproperty toJobNetworkConfigurationto control whether nodes remain joined to the VNet after a job ends. - Added
networkConfigurationproperty toJobPatchParameter. - Extended pool patching capabilities: Added
displayName,vmSize,taskSlotsPerNode,taskSchedulingPolicy,enableInterNodeCommunication,virtualMachineConfiguration,networkConfiguration,userAccounts,mountConfiguration,upgradePolicy, andresourceTagsproperties toPoolPatchParameter. Properties that affect pool topology can only be updated when the pool is empty. - Added
forceboolean query parameter toJob_Delete,Job_Terminate,JobSchedule_Delete, andJobSchedule_Terminateoperations to force the operation.
Version: 2024-02-01.19.0
- Added OS upgrade policy support for VM pools:
- Added new
UpgradePolicymodel with propertiesmode,automaticOSUpgradePolicy, androllingUpgradePolicy. Themodeproperty (UpgradeMode) accepts valuesautomatic,manual, androlling. - Added new
AutomaticOSUpgradePolicymodel with propertiesdisableAutomaticRollback,enableAutomaticOSUpgrade,useRollingUpgradePolicy, andosRollingUpgradeDeferral. - Added new
RollingUpgradePolicymodel with propertiesenableCrossZoneUpgrade,maxBatchInstancePercent,maxUnhealthyInstancePercent,maxUnhealthyUpgradedInstancePercent,pauseTimeBetweenBatches,prioritizeUnhealthyInstances, androllbackFailedInstancesOnPolicyBreach. - Added new
upgradePolicyproperty toCloudPool,PoolAddParameter, andPoolSpecification.
- Added new
- Added
upgradingosas a new value forComputeNodeState. - Added new required
upgradingOSproperty toNodeCountsto report the count of nodes in theupgradingosstate.
Version: 2023-11-01.18.0
- Added Trusted Launch / security profile support for VM pools:
- Added new
SecurityProfilemodel with propertiesencryptionAtHost,securityType, anduefiSettings. - Added new
UefiSettingsmodel with propertiessecureBootEnabledandvTpmEnabled. - Added new
securityProfileproperty toVirtualMachineConfiguration.
- Added new
- Added service artifact reference support for scale sets:
- Added new
ServiceArtifactReferencemodel with a requiredidproperty (ARM resource ID). - Added new
serviceArtifactReferenceproperty toVirtualMachineConfigurationto set the same image version for all VMs in a scale set when using thelatestimage version.
- Added new
- Enhanced OS disk configuration:
- Added new
ManagedDiskmodel with astorageAccountTypeproperty. - Added new properties to
OSDisk:caching,diskSizeGB,managedDisk, andwriteAcceleratorEnabled.
- Added new
- Added
StandardSSDLRS(standardssd_lrs) as a new value forStorageAccountType. - Added new
resourceTagsproperty toCloudPool,PoolAddParameter, andPoolSpecificationto allow user-defined tags to be propagated to backing Azure resources. Only applicable whenpoolAllocationModeisUserSubscription. - Added new
scaleSetVmResourceIdproperty toVirtualMachineInfoto expose the resource ID of the compute node's current Virtual Machine Scale Set VM. Only defined when the Batch Account'spoolAllocationModeisUserSubscription.
Version: 2023-05-01.17.0
- [Breaking] Removed Batch Job/Pool Lifetime Statistics API:
lifetimejobstatsandlifetimepoolstats. - Added boolean property
enableAcceleratedNetworkingtoNetworkConfiguration.- This property determines whether this pool should enable accelerated networking, with default value as False.
- Whether this feature can be enabled is also related to whether an operating system/VM instance is supported, which should align with AcceleratedNetworking Policy.
- Added boolean property
enableAutomaticUpgradetoVMExtension.- This property determines whether the extension should be automatically upgraded if there is a newer version of the extension available.
- The property
typeofContainerConfiguration, which now supports two values:DockerCompatibleandCriCompatible.
Version: 2022-10-01.16.0
- Added new
NodeCommunicationModeproperty that determines how a pool communicates with the Batch service - Added new
currentNodeCommunicationModeproperty of theNodeCommunicationModetype to theCloudPoolmodel to refer to the current state of the pool communication mode. - Added new
targetNodeCommunicationModeproperty of theNodeCommunicationModetype to the following models to refer to the desired node communication mode for the pool:PoolSpecificationCloudPoolPoolAddParameterPoolPatchParameterPoolUpdatePropertiesParameter
Version: 2022-01-01.15.0
- Added new
uploadHeadersproperty to theOutputFileBlobContainerDestinationmodel to allow users to set custom HTTP headers on resource file uploads. - Added new
allowTaskPreemptionproperty to the following models to support task preemption for higher priority tasks (requires Comms-Enabled or Single Tenant Pool):JobSpecificationCloudJobJobAddParameterJobPatchParameterJobUpdateParameter
Version: 2021-06-01.14.0
- Add ability to assign user-assigned managed identities to
CloudPool. These identities are made available on each node in the pool, and can be used to access various resources. - Added
identityReferenceproperty to the following models to support accessing resources via managed identity:AzureBlobFileSystemConfigurationOutputFileBlobContainerDestinationContainerRegistryResourceFileUploadBatchServiceLogs
- Added new
extensionsproperty to VirtualMachineConfiguration onCloudPoolto specify virtual machine extensions for nodes - Added the ability to specify availability zones using a new property
nodePlacementConfigurationon VirtualMachineConfiguration - Added new
osDiskproperty to VirtualMachineConfiguration, which contains settings for the operating system disk of the Virtual Machine.- The
placementproperty onDiffDiskSettingsspecifies the ephemeral disk placement for operating system disks for all VMs in the pool. Setting it to "CacheDisk" to store the ephemeral OS disk on the VM cache.
- The
- Added
maxParallelTasksproperty onCloudJobto control the maximum number of tasks that can run at the same time per job (defaults to -1 meaning unlimited). This property is currently in private preview. - Added
virtualMachineInfoproperty onComputeNodethat contains information about the current state of the virtual machine, including the exact version of the marketplace image the VM is using. - Added
recurrenceIntervalproperty toScheduleto control the interval between the start times of two successive jobs under a job schedule.
Version: 2020-09-01.12.0
- [Breaking] Replaced property
maxTasksPerNodewithtaskSlotsPerNodeon the pool. Using this property tasks in a job can consume a dynamic number of slots allowing for more fine-grained control over resource consumption. - [Breaking] Changed the response type of
GetTaskCountsto returnTaskCountsResult, which is a complex object containing the previousTaskCountsobject and a newTaskSlotCountsobject providing similar information in the context of slots being used. - Added property
requiredSlotsto the task allowing user to specify how many slots on a node it should take up.
Version: 2020-03-01.11.0
- Added ability to encrypt ComputeNode disk drives using the new
DiskEncryptionConfigurationproperty ofVirtualMachineConfiguration. - [Breaking] The
virtualMachineImageIdproperty ofImageReferencecan now only refer to a Shared Image Gallery image. - [Breaking] The
passwordproperty of the request body ofAdd Certificateoperation is optional for PFX formatted certificates. - [Breaking] Pools can now be provisioned without a public IP using the new
PublicIPAddressConfigurationproperty ofNetworkConfiguration. - [Breaking] The
publicIPsproperty ofNetworkConfigurationhas renamed asipAddressIdsand moved in toPublicIPAddressConfigurationas well. This property can only be specified ifprovisionproperty isusermanaged.
Version: 2019-08-01.10.0
- Added ability to specify a collection of public IPs on
NetworkConfigurationvia the newpublicIPsproperty on the pool. This guarantees nodes in the pool have an IP from the list user provided IPs. - Added ability to mount remote file-systems on each node of a pool via the
MountConfigurationproperty. - Shared Image Gallery images can now be specified on the
virtualMachineImageIdproperty ofImageReferenceby referencing the image via its Azure Resource Manager ID. - [Breaking] When not specified, the default value for
waitForSuccessonStartTaskistrue(previously, it wasfalse). - [Breaking] When not specified, the default value for
scopeonAutoUserSpecificationis now alwaysPool(previously, it wasTaskon Windows nodes andPoolon Linux nodes). - Improved various confusing or incomplete documents.
Version: 2019-06-01.9.0
[Breaking] Replaced
ListNodeAgentSKUswithListSupportedImages.ListSupportedImagescontains all of the same information originally available inListNodeAgentSKUsbut in a clearer format. New, nonverified images are also now returned. Additional information aboutCapabilitiesandBatchSupportEndOfLifeis accessible viaImageInformation.Now support network security rules blocking network access to a
CloudPoolbased on the source port of the traffic. This rule is done via theSourcePortRangesproperty onNetworkSecurityGroupRule.When running a container, Batch now supports executing the task in the container working directory or in the Batch task working directory. This is controlled by the
WorkingDirectoryproperty onTaskContainerSettings.Improved various confusing or incomplete documents.
Version: 2018-12-01.8.0
[Breaking] Removed support for
upgradeosoncloudServiceConfigurationpools.- Removed
upgradeos. - Renamed
targetOSVersiontoosVersionand removedcurrentOSVersiononCloudPool. - Removed
upgradingfromPoolState.
- Removed
[Breaking] Removed
dataEgressGiBanddataIngressGiBfrompoolusagemetrics. These properties are no longer supported.[Breaking]
ResourceFileimprovements- Added the ability specify an entire Azure Storage container in ResourceFile. There are now three supported modes for ResourceFile:
httpUrlcreates aResourceFilepointing to a single HTTP URL.storageContainerUrlcreates aResourceFilepointing to an Azure Blob Storage container.autoStorageContainerNamecreates aResourceFilepointing to an Azure Blob Storage container in the Batch registered autostorage account.
- URLs provided to
ResourceFilevia thehttpUrlmethod can now be any HTTP URL. Previously, these URLs had to be an Azure Blob Storage URL. blobPrefixcan be used to filter downloads from a storage container to only those matching the prefix.
- Added the ability specify an entire Azure Storage container in ResourceFile. There are now three supported modes for ResourceFile:
[Breaking] Removed
osDiskproperty fromVirtualMachineConfiguration. This property is no longer supported.Pools that set the
dynamicVNetAssignmentScopeonNetworkConfigurationto bejobcan now dynamically assign a Virtual Network to each node the jobs tasks run on. The specific Virtual Network to join the nodes to is specified in the newJobNetworkConfigurationproperty onCloudJobandJobSpecification`.Note
This feature is in public preview. It is disabled for all Batch accounts except for those which have contacted us and requested to be in the pilot.
The maximum lifetime of a task is now 180 days (previously it was 7).
Added support on Windows pools for creating users with a specific login mode (either
batchorinteractive) viaLoginMode.The default task retention time for all tasks is now seven days, previously it was infinite.
Version 2018-08-01.7.0
New features in version 2018-08-01.7.0 include:
- View the version of the Azure Batch Node Agent, via the new NodeAgentInfo property on ComputeNode.
- Added the ability to specify a
Filteron theResultof a task. See here for more details.- This enables the often requested scenario of performing a server-side query to find all tasks that failed.
- [Breaking] Removed the
ValidationStatusproperty from TaskCounts. - [Breaking] The default caching type for DataDisk and OSDisk is now
ReadWriteinstead ofNone. - [Breaking] Renamed the only value of ContainerType from
dockertodockerCompatible.
Version 2018-03-01.6.1
New features in version 2018-03-01.6.1 include:
- Pool node counts by state: This version adds the ability to query pool node counts by state, via the new ListPoolNodeCounts operation. This operation gives you the ability to query all pools in a Batch account for node states.
- Node agent logs: This version adds the ability to upload Azure Batch node agent logs from a particular node, via the UploadBatchServiceLogs operation. This log is intended for use in debugging by Microsoft Support if problems occur on a node.
Version 2017-09-01.6.0
Azure Hybrid Use Benefit: You can now create Batch Windows VM pools specifying that Azure Hybrid Use Benefit licensing be used. When this licensing is used, a discount is applied to the VM price. Use the new LicenseType property on VirtualMachineConfiguration.
Pool VM data disks: You can attach one or more empty data disks to VM pools by using the new data disk configuration that is part of the virtual machine configuration. Use the DataDisks property on VirtualMachineConfiguration.
(Breaking change) Custom images are now created and deployed using Azure Resource Manager image resources instead of blob VHD files. Batch now uses managed disks to create the pool VMs and therefore uses an Image resource. There is now no limit to the number of VMs in a pool created using a custom image; also, multiple copies of the VHD blob for large pools are no longer required. Custom image pools are therefore much easier to create and scale. For more information, see Use a custom image to create a pool of virtual machines.
The new VirtualMachineImageId property on ImageReference contains the reference to the Image, and OSDisk.ImageUris no longer exists.
Because of this change, ImageReference is now a required property of VirtualMachineConfiguration.
(Breaking change) Multi-instance tasks (created using MultiInstanceSettings) must now specify CoordinationCommandLine, and NumberOfInstances is now optional and defaults to 1.
Added support for tasks run using Docker containers. To run a task using a Docker container, you must specify a ContainerConfiguration on the VirtualMachineConfiguration for a pool, and then add TaskContainerSettings on the Task.
Version 2017-06-01.5.1
The version of the Batch API described here is 2017-06-01.5.1. Using the latest version is recommended when possible.
New features in version 2017-06-01.5.1 include:
- Support for efficient task counts via the new Get Task Counts operation. By calling the Get Task Counts operation, you can get a count of active, running, and completed tasks, and of tasks that succeeded or failed. For more information, see Count tasks for a job by state (Preview).
- Support for specifying inbound endpoints on pool compute nodes, via the new poolEndpointConfiguration property. By setting this property, you can address specific ports on the node externally.
Version 2017-05-01.5.0
The following sections outline new and changed features in version 2017-05-01.5.0.
Important
Version 2017-05-01.5.0 includes several breaking changes. Review the breaking changes and update your code in order to call version 2017-05-01.5.0.
Low-priority compute nodes
Azure Batch now offers low-priority compute nodes to reduce the cost of Batch workloads. Low-priority VMs make new types of Batch workloads possible by providing a large amount of compute power that is also economical.
There are several changes to the REST API for low-priority nodes:
- (Breaking change) The targetDedicated and currentDedicated properties of a pool or pool specification have been renamed to targetDedicatedNodes and currentComputeNodes.
- (Breaking change) The resizeError property of a pool is now a collection called resizeErrors.
- Compute nodes have a new isDedicated property. This property is true for dedicated nodes, and false for low-priority nodes.
- A Job Manager task has a new allowLowPriorityNode property. If this property is true, the Job Manager task may run on a low-priority node. If it is false, then the Job Manager task runs on a dedicated compute node.
Named users on Linux
Azure Batch now offers extra support for creating named users on Linux nodes.
- The new linuxUserConfiguration property supports specifying a uid (user ID) and gid (group ID) when creating a Linux user.
- (Breaking change) The sshPrivateKey property has been moved from the userAccount property to the new linuxUserConfiguration property. The linuxUserConfiguration property is itself a property of the userAccount property.
For more information about named user accounts, see Run tasks under user accounts in Batch.
Output files for task data
You can now specify output files to upload task data after a task has completed.
- The new outputFiles property supports specifying task files to upload to Azure Storage.
- The new fileUploadError property of the exitConditions property supports specifying actions to take based on the upload status of an output file.
Task error reporting
Several changes have been made to improve reporting for task errors.
- The new result property of the executionInfo property indicates whether a task succeeded or failed.
- (Breaking change) The schedulingError property of the executionInfo property has been renamed failureInfo. The failureInfo property is returned any time there is a task failure. This includes all previous scheduling error cases, all cases where a nonzero task exit code is returned, and any file upload failures.
- (Breaking change) The schedulingError property of the exitConditions property has been renamed to preProcessingError to clarify when the error took place in the task lifecycle.
- (Breaking change) The schedulingErrorCateogry property has been renamed to errorCategory.
Application licenses
You can now request that application licenses be provisioned to your pool, via the new applicationLicenses property on a pool or pool specification.
Version 2017-01-01.4.0
This version release extends all support from the previous version, 2016-07-01.3.1. Additionally, it supports the following capabilities:
Run a task under a specified user identity.
You can now run a task or task collection under one of the following user identities, specified via the new userIdentity property on the task resource:
A user account with a name that you define.
A user account that is created automatically (an autouser). An autouser can run as an administrative user or as a nonadministrative user. By default, an autouser runs as a nonadministrative user.
Important
The userIdentity property, with its elevationLevel property, replaces the runElevated property in requests that add a task or a task collection, and in responses that get information about a task or that list tasks.
If you make a request that includes the runElevated property to version 2017-01-01.4.0 of the Batch service, the request fails.
To run as an administrative user, update your application to use the userIdentity property, setting the elevationLevel property to admin.
To run as a nonadministrative user, update your application to use the userIdentity property, setting the elevationLevel property to nonAdmin. Since this setting is the default, you can also omit the setting.
Define user accounts across all nodes in a pool.
You can now run a task or task collection under a user account that you define on the pool resource. Define a user account via the new userAccounts property in requests to Add Pool. When you define the account, you can specify the account name, password, elevation level (admin or nonadmin), and SSH private key (for Linux pools).
Once you define the user account, you can specify that user account for the userIdentity property in requests that add a task or a task collection.
Provide a task with a token to authenticate to the Batch service when the task runs.
The Batch service can now provide an authentication token to a task when it runs. The authentication token enables a task to issue requests related to the job to the Batch service, without the Batch account keys. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable.
Currently authentication tokens are supported for calling operations on the job resource only. The authentication token grants access to all operations on the job that contains the task.
To have the Batch service provide the authentication token, specify the new authenticationTokenSettings property, together with its access property, in requests to Add Task or Add Task Collection.
Specify an action to take on a task`s dependencies if the task fails.
You can now specify that dependent tasks proceed even if the task that they depend on fails. Set the new dependencyAction property of a task resource to satisfy to run dependent tasks even if the parent task fails. Alternately, set dependencyAction to block to prevent running of dependent tasks if the parent task fails.
Specify the dependencyAction property in requests to Add Task or Add Task Collection.
For more information about using dependency actions, see Dependency actions.
Use custom OS disk images when creating a pool.
You can now use custom OS disk images to create a pool.
To do so, you must specify when you create your Batch account that pools are to be provisioned in the user subscription, rather than in a subscription managed by the Batch service. In a call to Create Account, set the poolAllocationMode property to UserSubscription. Then use the osDisk property to specify a reference to a disk image in a request to Add Pool.
Important
When you create your Batch account, if you specify that pools are to be provisioned in the user subscription, then you must use Azure Active Directory-based authentication for all requests made through that account.
Use Azure Active Directory-based authentication for requests to the Batch service.
Azure Active Directory (Azure AD) is now supported for authenticating calls to the Batch service.
If your Batch account is set up to provision pools in the user subscription, then using Azure AD authentication is required.
Version 2016-07-01.3.1
This version release extends all support from previous version, 2016-02-01.3.0. Additionally, it supports the following capabilities:
Capability to create a pool and an autopool with Network configuration
- A new property networkConfiguration has been added to both the pool and autopool resources. This property can be used to specify the pool
s network configuration, such as the subnet in which the pools compute nodes is created.
- A new property networkConfiguration has been added to both the pool and autopool resources. This property can be used to specify the pool
Automatically terminate a job when all tasks are complete.
- A new property onAllTasksComplete has been added to the job resource. You can specify this property when you create or update a job.
Automatically terminate or disable a job when a task fails.
- A new property onTaskFailure has been added to the job resource, and a new property exitConditions has been added to the task resource. The job onTaskFailure setting indicates whether task failure may have a job-level impact, and the task exitConditions property allows tasks to tailor the job-level impact to the nature of the failure.
Associate application packages with tasks and pools.
- A new property applicationPackageReferences added to the task resource and to the job jobManagerTask settings. This property allows application packages to be deployed on demand as tasks require them rather than requiring them to be specified at pool creation time. This property is particularly valuable for long-lived pools that may be called on to run different kinds of jobs or different application versions over their lifetime.
Capability to reactivate a failed task.
- A new operation Reactivate a task has been added to reset a failed task`s state to active. This allows failures to be retried, for example if the failure was transient or if you have been able to fix the cause of the failure, without recreating the task.
Version 2016-02-01.3.0
This version release extends all support from previous version, 2015-12-01.2.2. Additionally, it supports the following capabilities:
Capability to create a pool and an autopool with IaaS VM configuration
Existing properties
osFamily,targetOSVersionandcurrentOSVersionare moved from top-level properties of Pool and Autopool resources and are moved inside a new property calledcloudServiceConfiguration.A new property
virtualMachineConfigurationis added to both the Pool and Autopool resources. This property can be specified to configure a pool/auto pool with IaaS VMs.A new API is added to obtain information about all the node agent SKUs supported by the Batch service. See List supported node agent SKUs.
A new API is added to obtain remote login settings that can be used to log in remotely to a compute node created with IaaS VM configuration. See Get remote login settings for a node.
A new API is added to add a collection of tasks to a job. See Add a collection of tasks to a job.
A new optional property
sshPublicKeyis added to the User resource that can be used for adding/updating users on a Linux compute node.Two new properties
totalTasksSucceededandrunningTasksCountare added to the Node resource. These properties can be obtained via Get information about a node or List the compute nodes in a pool.A new property
fileModeis added to theResourceFilecomplex type. This property is applied only on Linux compute nodes and ignored for Windows compute nodes.A new property
fileModeis added to theFilePropertiescomplex type. This property is returned by the Batch service for Linux compute nodes as part of GetFileProperties or ListFileProperties APIs. Also, the existing propertycreationTimeunder theFilePropertiescomplex type is changed to an optional property because this property will not be returned for Linux compute nodes.The data type of the existing property
visibilityinside theCertificateReferencecomplex type is modified from a string with comma-separated values to a collection of strings. Also one of the existing values for visibility is renamed from "rdp" to "remoteuser".
The URLs of the following APIs are changed to replace "?" for the action name to "/":
Replace the properties of a pool
Disable automatic scaling on a pool
Enable automatic scaling on a pool
Evaluate an automatic scaling formula
Change the size of a pool
Stop changing the size of a pool
Upgrade the operating system of compute nodes in a pool
Remove compute nodes from a pool
Reboot a node
Reimage a node
Disable task scheduling on a node
Enable task scheduling on a node
Disable a job schedule
Enable a job schedule
Terminate a job schedule
Disable a job
Enable a job
Terminate a job
Terminate a task
Cancel the deletion of a certificate
Version 2015-12-01.2.2
This version release extends all support from previous version, 2015-11-01.2.1. Additionally, it supports the following capabilities:
Applications can now be deployed to compute nodes using application packages instead of as resource files.
New APIs are provided for clients to browse the list of available applications and versions, for example to display a selector in a user interface.
Pool-related APIs are changed to allow a pool to specify application packages to be downloaded to all nodes in that pool.
Tasks can now be made dependent on other tasks. A dependent task will not start until all the tasks it depends on have completed successfully.
This version release includes the following other changes:
- The default pool resize timeout has changed to 15 minutes.
Version 2015-11-01.2.1
This version release extends all support from previous version 2015-06-01.2.0. Additionally, it supports the following capabilities:
Capability to add and run multi-instance task (for example, MPI)
A new optional property
multiInstanceSettingsis added to the Task resource that can be optionally included in Add Task, Get Task, List Tasks APIs.A new API List the subtasks of a task is added to obtain information about subtasks.
A new optional property
subtaskIdis added torecentTasksfor a Compute Node. This property is returned as part of Get Compute Node and List Compute Nodes
Capability to disable or enable task scheduling on a compute node
Two new APIs Disable task scheduling on a node and Enable task scheduling on a node are added on compute node resource.
A new compute node state
offlineis added. For older API versions, this state is mapped tounusable.A new property
schedulingStateis added to the compute node resource. Possible values forenabledanddisabled.
Capability to specify auto -scale evaluation interval on a pool/autopool
A new property
autoScaleEvaluationIntervalis added to pool resource. This property can be included in Add Pool, Get Pool, Enable Auto -Scale, and List Pools APIs.Similarly, for auto pools, a new property
autoScaleEvaluationIntervalis added toautoPoolSpecificationproperty. This property can be included in Add Job, Get Job, List Jobs, Add Job Schedule, Get Job Schedule, Update Job Schedule, List Job Schedules, and List Jobs in Job Schedule APIs.
Enhancement to Task APIs to return the root directory of the task on the compute node.
Two new properties
taskRootDirectoryandtaskRootDirectoryUrlare added to Task resource that can be obtained as part of Get information about a task, List Tasks APIsA new property
taskRootDirectoryis added tojobPreparationTaskExecutionInfoandjobReleaseTaskExecutionInfothat can be obtained via List the status of the job preparation and job release tasks for a job API.