Development Status
- 5 - Production/Stable
Programming Language
- Python
- Python :: 3 :: Only
- Python :: 3
- Python :: 3.6
- Python :: 3.7
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
License
- OSI Approved :: MIT License
Microsoft Azure SDK for Python
This is the Microsoft Azure Batch Client Library.
This package has been tested with Python 3.6+
For a more complete set of Azure libraries, see https://aka.ms/azsdk/python/all
Usage
For code examples, see the Batch samples repo on GitHub or see Batch on docs.microsoft.com.
Provide Feedback
If you encounter any bugs or have suggestions, please file an issue in the Issues section of the project.

Release History
14.2.0 (2024-02-01)
Features Added
- Added
UpgradePolicytoCloudPooldefinition for pool creation- Added
AutomaticOSUpgradePolicyto include configuration parameters for automatic OS upgrades - Added
RollingUpgradePolicyto include configuration parameters for rolling upgrades
- Added
14.1.0 (2023-11-01)
Features Added
-
Added ResourceTags support to Pool Creation so users are able to specify resource tags for a pool. This feature is currently only supported for pool creation but will be updatable in the future.
- Added
resourceTagsproperty toPoolSpecificationdefinition - Added
resourceTagsproperty toCloudPooldefinition
- Added
-
Added
SecurityProfilesupport to Pool Creation. Trusted Launch provides advanced security to Guest OS preventing boot-kits/rootkits (like un-signed driver or kernel modification) to be introduced into boot-chain.- Added
serviceArtifactReferenceandsecurityProfileproperty toVirtualMachineConfigurationdefinition
- Added
-
Added
ServiceArtifactReferenceandOSDisksupport to Pool Creation- Added
standardssd_lrsvalue toStorageAccountTypeenum - Added
caching,managedDisk,diskSizeGB, andwriteAcceleratorEnabledproperty toNodePlacementPolicyTypedefinition - Added
scaleSetVmResourceIDproperty toVirtualMachineInfodefinition
- Added
14.0.0 (2023-05-01)
Features Added
- 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 (AcceleratedNetworking Limitations and constraints).
- Added boolean property
enableAutomaticUpgradetoVMExtension.- This property determines whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
- Added a new property
typetoContainerConfiguration. Possible values include:dockerCompatibleandcriCompatible.
Breaking Changes
- Removed lifetime statistics API. This API is no longer supported.
- Removed
job.get_all_lifetime_statisticsAPI. - Removed
pool.get_all_lifetime_statisticsAPI.
- Removed
Other Changes
- Deprecating
CertificateOperationsrelated methods.- This operation is deprecating and will be removed after February 2024. Please use Azure KeyVault Extension instead.
13.0.0 (2022-11-08)
Features Added
- Added new custom enum type
NodeCommunicationMode.- This property determines how a pool communicates with the Batch service.
- Possible values: Default, Classic, Simplified.
- Added properties
current_node_communication_modeandtarget_node_communication_modeof typeNodeCommunicationModetoCloudPool. - Added property
target_node_communication_modeof typeNodeCommunicationModetoPoolSpecification,PoolAddParameter,PoolPatchParameter, andPoolUpdatePropertiesParameter.
12.0.0 (2022-02-01)
Features
- Added property uploadHeaders to
OutputFileBlobContainerDestination.- Allows users to set custom HTTP headers on resource file uploads.
- Array of type HttpHeader (also being added).
- Added boolean property
allow_task_preemptiontoJobSpecification,CloudJob,JobAddParameter,JobPatchParameter,JobUpdateParameter- Mark Tasks as preemptible for higher priority Tasks (requires Comms-Enabled or Single Tenant Pool).
- Replaced comment (title, description, etc.) references of "low-priority" with "Spot/Low-Priority", to reflect new service behavior.
- No API change required.
- Low-Priority Compute Nodes (VMs) will continue to be used for User Subscription pools (and only User Subscription pools), as before.
- Spot Compute Nodes (VMs) will now be used for Batch Managed (and only Batch Managed pools) pools.
- Relevant docs:
11.0.0 (2021-07-30)
Features
- Add ability to assign user-assigned managed identities to
CloudPool. These identities will be made available on each node in the pool, and can be used to access various resources. - Added
identity_referenceproperty to the following models to support accessing resources via managed identity:AzureBlobFileSystemConfigurationOutputFileBlobContainerDestinationContainerRegistryResourceFileUploadBatchServiceLogsConfiguration
- Added new
compute_node_extensionoperations toBatchServiceClientfor getting/listing VM extensions on a node - Added new
extensionsproperty toVirtualMachineConfigurationonCloudPoolto specify virtual machine extensions for nodes - Added the ability to specify availability zones using a new property
node_placement_configurationonVirtualMachineConfiguration - Added new
os_diskproperty toVirtualMachineConfiguration, 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" will store the ephemeral OS disk on the VM cache.
- The
- Added
max_parallel_tasksproperty onCloudJobto control the maximum allowed tasks per job (defaults to -1, meaning unlimited). - Added
virtual_machine_infoproperty onComputeNodewhich contains information about the current state of the virtual machine, including the exact version of the marketplace image the VM is using.
10.0.0 (2020-09-01)
Features
- [Breaking] Replaced property
maxTasksPerNodewithtaskSlotsPerNodeon the pool. Using this property tasks in a job can consume a dynamic amount 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.
9.0.0 (2020-03-24)
Features
- Added ability to encrypt
ComputeNodedisk drives using the newdisk_encryption_configurationproperty ofVirtualMachineConfiguration. - [Breaking] The
virtual_machine_idproperty ofImageReferencecan now only refer to a Shared Image Gallery image. - [Breaking] Pools can now be provisioned without a public IP using the new
public_ip_address_configurationproperty ofNetworkConfiguration.- The
public_ipsproperty ofNetworkConfigurationhas moved in topublic_ip_address_configurationas well. This property can only be specified ifip_provisioning_typeisUserManaged.
- The
REST API version
This version of the Batch .NET client library targets version 2020-03-01.11.0 of the Azure Batch REST API.
8.0.0 (2019-8-5)
- Using REST API version 2019-08-01.10.0.
- Added ability to specify a collection of public IPs on
NetworkConfigurationvia the newpublic_ipsproperty. This guarantees nodes in the Pool will have an IP from the list user provided IPs. - Added ability to mount remote file-systems on each node of a pool via the
mount_configurationproperty onCloudPool. - Shared Image Gallery images can now be specified on the
virtual_machine_image_idproperty ofImageReferenceby referencing the image via its ARM ID. - Breaking When not specified, the default value for
wait_for_successonStartTaskis nowTrue(wasFalse). - Breaking When not specified, the default value for
scopeonAutoUserSpecificationis now alwaysPool(wasTaskon Windows nodes,Poolon Linux nodes).
- Added ability to specify a collection of public IPs on
7.0.0 (2019-6-11)
- Using REST API version 2019-06-01.9.0.
- Breaking Replaced
AccountOperations.list_node_agent_skuswithAccountOperations.list_supported_images.list_supported_imagescontains all of the same information originally available inlist_node_agent_skusbut in a clearer format. New non-verified images are also now returned. Additional information aboutcapabilitiesandbatch_support_end_of_lifeis accessible on theImageInformationobject returned bylist_supported_images. - Now support network security rules blocking network access to a
CloudPoolbased on the source port of the traffic. This is done via thesource_port_rangesproperty onnetwork_security_group_rules. - 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
working_directoryproperty onTaskContainerSettings.
- Breaking Replaced
6.0.1 (2019-2-26)
- Fix bug in TaskOperations.add_collection methods exception handling
6.0.0 (2018-12-14)
- Using REST API version 2018-12-01.8.0.
- Breaking Removed support for the
upgrade_osAPI onCloudServiceConfigurationpools.- Removed
PoolOperations.upgrade_osAPI. - Renamed
target_os_versiontoos_versionand removedcurrent_os_versiononCloudServiceConfiguration. - Removed
upgradingstate fromPoolStateenum.
- Removed
- Breaking Removed
data_egress_gi_banddata_ingress_gi_bfromPoolUsageMetrics. These properties are no longer supported. - Breaking ResourceFile improvements
- Added the ability specify an entire Azure Storage container in
ResourceFile. There are now three supported modes forResourceFile:http_urlcreates aResourceFilepointing to a single HTTP URL.storage_container_urlcreates aResourceFilepointing to the blobs under an Azure Blob Storage container.auto_storage_container_namecreates aResourceFilepointing to the blobs under an Azure Blob Storage container in the Batch registered auto-storage account.
- URLs provided to
ResourceFilevia thehttp_urlproperty can now be any HTTP URL. Previously, these had to be an Azure Blob Storage URL. - The blobs under the Azure Blob Storage container can be filtered by
blob_prefixproperty.
- Added the ability specify an entire Azure Storage container in
- Breaking Removed
os_diskproperty fromVirtualMachineConfiguration. This property is no longer supported. - Pools which set the
dynamic_vnet_assignment_scopeonNetworkConfigurationto beDynamicVNetAssignmentScope.jobcan now dynamically assign a Virtual Network to each node the job's tasks run on. The specific Virtual Network to join the nodes to is specified in the newnetwork_configurationproperty 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) viaWindowsUserConfiguration.login_mode. - The default task retention time for all tasks is now 7 days, previously it was infinite.
- Breaking Removed support for the
- Breaking Renamed the
base_urlparameter tobatch_urlonBatchServiceClientclass, and it is required now.
5.1.1 (2018-10-16)
Bugfixes
- Fix authentication class to allow HTTP session to be re-used
Note
- azure-nspkg is not installed anymore on Python 3 (PEP420-based namespace package)
5.1.0 (2018-08-28)
- Update operation TaskOperations.add_collection with the following added functionality:
- Retry server side errors.
- Automatically chunk lists of more than 100 tasks to multiple requests.
- If tasks are too large to be submitted in chunks of 100, reduces number of tasks per request.
- Add a parameter to specify number of threads to use when submitting tasks.
5.0.0 (2018-08-24)
- Using REST API version 2018-08-01.7.0.
- Added
node_agent_infoin ComputeNode to return the node agent information - Breaking Removed the
validation_statusproperty fromTaskCounts. - Breaking The default caching type for
DataDiskandOSDiskis nowread_writeinstead ofnone.
- Added
BatchServiceClientcan be used as a context manager to keep the underlying HTTP session open for performance.- Breaking Model signatures are now using only keywords-arguments syntax. Each positional argument must be rewritten as a keyword argument.
- Breaking The following operations signatures are changed:
- Operation PoolOperations.enable_auto_scale
- Operation TaskOperations.update
- Operation ComputeNodeOperations.reimage
- Operation ComputeNodeOperations.disable_scheduling
- Operation ComputeNodeOperations.reboot
- Operation JobOperations.terminate
- Enum types now use the "str" mixin (class AzureEnum(str, Enum)) to improve the behavior when unrecognized enum values are encountered.
4.1.3 (2018-04-24)
- Update some APIs' comments
- New property
leaving_poolinnode_countstype.
4.1.2 (2018-04-23)
Bugfixes
- Compatibility of the sdist with wheel 0.31.0
- Compatibility with msrestazure 0.4.28
4.1.1 (2018-03-26)
- Fix regression on method
enable_auto_scale.
4.1.0 (2018-03-07)
- Using REST API version 2018-03-01.6.1.
- Added the ability to query pool node counts by state, via the new
list_pool_node_countsmethod. - Added the ability to upload Azure Batch node agent logs from a particular node, via the
upload_batch_service_logsmethod.- This is intended for use in debugging by Microsoft support when there are problems on a node.
4.0.0 (2017-09-25)
- Using REST API version 2017-09-01.6.0.
- Added the ability to get a discount on Windows VM pricing if you have on-premises licenses for the OS SKUs you are deploying, via
license_typeonVirtualMachineConfiguration. - Added support for attaching empty data drives to
VirtualMachineConfigurationbased pools, via the newdata_disksattribute onVirtualMachineConfiguration. - Breaking Custom images must now be deployed using a reference to an ARM Image, instead of pointing to .vhd files in blobs directly.
- The new
virtual_machine_image_idproperty onImageReferencecontains the reference to the ARM Image, andOSDisk.image_urisno longer exists. - Because of this,
image_referenceis now a required attribute ofVirtualMachineConfiguration.
- The new
- Breaking Multi-instance tasks (created using
MultiInstanceSettings) must now specify acoordination_commandLine, andnumber_of_instancesis 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
container_configurationon theVirtualMachineConfigurationfor a pool, and then addcontainer_settingson the Task.
3.1.0 (2017-07-24)
- Added a new operation
job.get_task_countsto retrieve the number of tasks in each state. - Added suuport for inbound endpoint configuration on a pool - there is a new
pool_endpoint_configurationattribute onNetworkConfiguration. This property is only supported on pools that usevirtual_machine_configuration. - A
ComputeNodenow also has anendpoint_configurationattribute with the details of the applied endpoint configuration for that node.
3.0.0 (2017-05-10)
- Added support for the new low-priority node type;
AddPoolParameterandPoolSpecificationnow have an additional propertytarget_low_priority_nodes. target_dedicatedandcurrent_dedicatedonCloudPool,AddPoolParameterandPoolSpecificationhave been renamed totarget_dedicated_nodesandcurrent_dedicated_nodes.resize_erroronCloudPoolis now a collection calledresize_errors.- Added a new
is_dedicatedproperty onComputeNode, which isfalsefor low-priority nodes. - Added a new
allow_low_priority_nodeproperty toJobManagerTask, which iftrueallows theJobManagerTaskto run on a low-priority compute node. PoolResizeParameternow takes two optional parameters,target_dedicated_nodesandtarget_low_priority_nodes, instead of one required parametertarget_dedicated. At least one of these two parameters must be specified.- Added support for uploading task output files to persistent storage, via the
OutputFilesproperty onCloudTaskandJobManagerTask. - Added support for specifying actions to take based on a task's output file upload status, via the
file_upload_errorproperty onExitConditions. - Added support for determining if a task was a success or a failure via the new
resultproperty on all task execution information objects. - Renamed
scheduling_erroron all task execution information objects tofailure_information.TaskFailureInformationreplacesTaskSchedulingErrorand is returned any time there is a task failure. This includes all previous scheduling error cases, as well as nonzero task exit codes, and file upload failures from the new output files feature. - Renamed
SchedulingErrorCategoryenum toErrorCategory. - Renamed
scheduling_erroronExitConditionstopre_processing_errorto more clearly clarify when the error took place in the task life-cycle. - Added support for provisioning application licenses to your pool, via a new
application_licensesproperty onPoolAddParameter,CloudPoolandPoolSpecification. Please note that this feature is in gated public preview, and you must request access to it via a support ticket. - The
ssh_private_keyattribute of aUserAccountobject has been replaced with an expandedLinuxUserConfigurationobject with additional settings for a user ID and group ID of the user account. - Removed
unmappedenum state fromAddTaskStatus,CertificateFormat,CertificateVisibility,CertStoreLocation,ComputeNodeFillType,OSType, andPoolLifetimeOptionas they were not ever used. - Improved and clarified documentation.
2.0.1 (2017-04-19)
- This wheel package is now built with the azure wheel extension
2.0.0 (2017-02-23)
- AAD token authentication now supported.
- Some operation names have changed (along with their associated parameter model classes):
- pool.list_pool_usage_metrics -> pool.list_usage_metrics
- pool.get_all_pools_lifetime_statistics -> pool.get_all_lifetime_statistics
- job.get_all_jobs_lifetime_statistics -> job.get_all_lifetime_statistics
- file.get_node_file_properties_from_task -> file.get_properties_from_task
- file.get_node_file_properties_from_compute_node -> file.get_properties_from_compute_node
- The attribute 'file_name' in relation to file operations has been renamed to 'file_path'.
- Change in naming convention for enum values to use underscores: e.g. StartTaskState.waitingforstarttask -> StartTaskState.waiting_for_start_task.
- Support for running tasks under a predefined or automatic user account. This includes tasks, job manager tasks, job preparation and release tasks and pool start tasks. This feature replaces the previous 'run_elevated' option on a task.
- Tasks now have an optional scoped authentication token (only applies to tasks and job manager tasks).
- Support for creating pools with a list of user accounts.
- Support for creating pools using a custom VM image (only supported on accounts created with a "User Subscription" pool allocation mode).
1.1.0 (2016-09-15)
- Added support for task reactivation
1.0.0 (2016-08-09)
- Added support for joining a CloudPool to a virtual network on using the network_configuration property.
- Added support for application package references on CloudTask and JobManagerTask.
- Added support for automatically terminating jobs when all tasks complete or when a task fails, via the on_all_tasks_complete property and the CloudTask exit_conditions property.
0.30.0rc5
- Initial Release