Microsoft Azure Batch Management Client Library for Python
npx @tessl/cli install tessl/pypi-azure-mgmt-batch@18.0.00
# Azure Batch Management Client
1
2
A comprehensive Python library for managing Azure Batch resources through the Azure Resource Manager APIs. This client library provides programmatic access to create, configure, monitor, and manage Azure Batch accounts, pools, applications, certificates, and related resources.
3
4
## Package Information
5
6
- **Package Name**: azure-mgmt-batch
7
- **Language**: Python
8
- **Installation**: `pip install azure-mgmt-batch azure-identity`
9
10
## Core Imports
11
12
```python
13
from azure.mgmt.batch import BatchManagementClient
14
from azure.identity import DefaultAzureCredential
15
from typing import Union, Optional, IO
16
```
17
18
## Basic Usage
19
20
```python
21
import os
22
from azure.identity import DefaultAzureCredential
23
from azure.mgmt.batch import BatchManagementClient
24
25
# Set up authentication
26
credential = DefaultAzureCredential()
27
subscription_id = os.getenv("AZURE_SUBSCRIPTION_ID")
28
29
# Create the client
30
client = BatchManagementClient(credential=credential, subscription_id=subscription_id)
31
32
# List all Batch accounts in a resource group
33
accounts = client.batch_account.list_by_resource_group("my-resource-group")
34
for account in accounts:
35
print(f"Account: {account.name}, Location: {account.location}")
36
37
# Get details of a specific Batch account
38
account = client.batch_account.get("my-resource-group", "my-batch-account")
39
print(f"Account ID: {account.id}")
40
print(f"Provisioning State: {account.provisioning_state}")
41
42
# Create a new application
43
app_params = {
44
"display_name": "My Application",
45
"allow_updates": True
46
}
47
application = client.application.create(
48
"my-resource-group",
49
"my-batch-account",
50
"my-app",
51
app_params
52
)
53
```
54
55
## Authentication
56
57
Authentication requires Azure Active Directory credentials. The recommended approach uses environment variables:
58
59
- `AZURE_CLIENT_ID`: Azure client ID
60
- `AZURE_TENANT_ID`: Azure tenant ID
61
- `AZURE_CLIENT_SECRET`: Azure client secret
62
- `AZURE_SUBSCRIPTION_ID`: Azure subscription ID
63
64
## Architecture
65
66
The BatchManagementClient provides access to Azure Batch management operations through specialized operation classes:
67
68
- **Batch Accounts**: Core account management, key management, networking
69
- **Pools**: Compute pool creation, scaling, configuration, monitoring
70
- **Applications**: Application deployment and version management
71
- **Certificates**: Security certificate management and deployment
72
- **Networking**: Private endpoints, network security perimeters
73
- **Location Services**: Quota management and VM SKU availability
74
75
## Capabilities
76
77
### Batch Account Management
78
79
Complete lifecycle management of Azure Batch accounts including creation, configuration, key management, and network security settings.
80
81
```python { .api }
82
def begin_create(resource_group_name: str, account_name: str, parameters: Union[BatchAccountCreateParameters, IO[bytes]], **kwargs) -> LROPoller[BatchAccount]
83
def get(resource_group_name: str, account_name: str, **kwargs) -> BatchAccount
84
def update(resource_group_name: str, account_name: str, parameters: Union[BatchAccountUpdateParameters, IO[bytes]], **kwargs) -> BatchAccount
85
def begin_delete(resource_group_name: str, account_name: str, **kwargs) -> LROPoller[None]
86
def list(subscription_id: str, **kwargs) -> ItemPaged[BatchAccount]
87
def list_by_resource_group(resource_group_name: str, **kwargs) -> ItemPaged[BatchAccount]
88
def get_keys(resource_group_name: str, account_name: str, **kwargs) -> BatchAccountKeys
89
def regenerate_key(resource_group_name: str, account_name: str, parameters: Union[BatchAccountRegenerateKeyParameters, IO[bytes]], **kwargs) -> BatchAccountKeys
90
def synchronize_auto_storage_keys(resource_group_name: str, account_name: str, **kwargs) -> None
91
def list_detectors(resource_group_name: str, account_name: str, **kwargs) -> ItemPaged[DetectorResponse]
92
def get_detector(resource_group_name: str, account_name: str, detector_id: str, **kwargs) -> DetectorResponse
93
def list_outbound_network_dependencies_endpoints(resource_group_name: str, account_name: str, **kwargs) -> ItemPaged[OutboundEnvironmentEndpoint]
94
```
95
96
[Batch Account Management](./batch-accounts.md)
97
98
### Pool Management
99
100
Creation and management of compute pools for batch workloads, including virtual machine configuration, scaling policies, and network settings.
101
102
```python { .api }
103
def create(resource_group_name: str, account_name: str, pool_name: str, parameters: Union[Pool, IO[bytes]], if_match: Optional[str] = None, if_none_match: Optional[str] = None, **kwargs) -> Pool
104
def get(resource_group_name: str, account_name: str, pool_name: str, **kwargs) -> Pool
105
def update(resource_group_name: str, account_name: str, pool_name: str, parameters: Union[Pool, IO[bytes]], if_match: Optional[str] = None, **kwargs) -> Pool
106
def begin_delete(resource_group_name: str, account_name: str, pool_name: str, **kwargs) -> LROPoller[None]
107
def list_by_batch_account(resource_group_name: str, account_name: str, maxresults: Optional[int] = None, select: Optional[str] = None, filter: Optional[str] = None, **kwargs) -> ItemPaged[Pool]
108
def disable_auto_scale(resource_group_name: str, account_name: str, pool_name: str, **kwargs) -> Pool
109
def stop_resize(resource_group_name: str, account_name: str, pool_name: str, **kwargs) -> Pool
110
```
111
112
[Pool Management](./pools.md)
113
114
### Application Management
115
116
Deployment and version management for applications that run on Batch compute nodes, including application packages.
117
118
```python { .api }
119
# Application Operations
120
def create(resource_group_name: str, account_name: str, application_name: str, parameters: Optional[Union[Application, IO[bytes]]] = None, **kwargs) -> Application
121
def get(resource_group_name: str, account_name: str, application_name: str, **kwargs) -> Application
122
def update(resource_group_name: str, account_name: str, application_name: str, parameters: Union[Application, IO[bytes]], **kwargs) -> Application
123
def delete(resource_group_name: str, account_name: str, application_name: str, **kwargs) -> None
124
def list(resource_group_name: str, account_name: str, maxresults: Optional[int] = None, **kwargs) -> ItemPaged[Application]
125
126
# Application Package Operations
127
def create_package(resource_group_name: str, account_name: str, application_name: str, version_name: str, parameters: Optional[Union[ApplicationPackage, IO[bytes]]] = None, **kwargs) -> ApplicationPackage
128
def activate_package(resource_group_name: str, account_name: str, application_name: str, version_name: str, parameters: Union[ActivateApplicationPackageParameters, IO[bytes]], **kwargs) -> ApplicationPackage
129
def get_package(resource_group_name: str, account_name: str, application_name: str, version_name: str, **kwargs) -> ApplicationPackage
130
def delete_package(resource_group_name: str, account_name: str, application_name: str, version_name: str, **kwargs) -> None
131
def list_packages(resource_group_name: str, account_name: str, application_name: str, maxresults: Optional[int] = None, **kwargs) -> ItemPaged[ApplicationPackage]
132
```
133
134
[Application Management](./applications.md)
135
136
### Certificate Management
137
138
Management of security certificates for secure communication and authentication in Batch environments.
139
140
```python { .api }
141
def list_by_batch_account(resource_group_name: str, account_name: str, maxresults: Optional[int] = None, select: Optional[str] = None, filter: Optional[str] = None, **kwargs) -> ItemPaged[Certificate]
142
def create(resource_group_name: str, account_name: str, certificate_name: str, parameters: Union[CertificateCreateOrUpdateParameters, IO[bytes]], if_match: Optional[str] = None, if_none_match: Optional[str] = None, **kwargs) -> Certificate
143
def get(resource_group_name: str, account_name: str, certificate_name: str, **kwargs) -> Certificate
144
def update(resource_group_name: str, account_name: str, certificate_name: str, parameters: Union[CertificateCreateOrUpdateParameters, IO[bytes]], if_match: Optional[str] = None, **kwargs) -> Certificate
145
def begin_delete(resource_group_name: str, account_name: str, certificate_name: str, **kwargs) -> LROPoller[None]
146
def cancel_deletion(resource_group_name: str, account_name: str, certificate_name: str, **kwargs) -> Certificate
147
```
148
149
[Certificate Management](./certificates.md)
150
151
### Location and Quota Management
152
153
Regional quota management and virtual machine SKU availability queries.
154
155
```python { .api }
156
def get_quotas(location_name: str, **kwargs) -> BatchLocationQuota
157
def list_supported_virtual_machine_skus(location_name: str, maxresults: Optional[int] = None, filter: Optional[str] = None, **kwargs) -> ItemPaged[SupportedSku]
158
def check_name_availability(location_name: str, parameters: Union[CheckNameAvailabilityParameters, IO[bytes]], **kwargs) -> CheckNameAvailabilityResult
159
```
160
161
[Location Services](./location-services.md)
162
163
### Network Security
164
165
Private endpoint connections and network security perimeter configuration for secure network access.
166
167
```python { .api }
168
def list_by_batch_account(resource_group_name: str, account_name: str, maxresults: Optional[int] = None, **kwargs) -> ItemPaged[PrivateEndpointConnection]
169
def get(resource_group_name: str, account_name: str, private_endpoint_connection_name: str, **kwargs) -> PrivateEndpointConnection
170
def begin_update(resource_group_name: str, account_name: str, private_endpoint_connection_name: str, parameters: Union[PrivateEndpointConnection, IO[bytes]], if_match: Optional[str] = None, **kwargs) -> LROPoller[PrivateEndpointConnection]
171
def begin_delete(resource_group_name: str, account_name: str, private_endpoint_connection_name: str, **kwargs) -> LROPoller[None]
172
```
173
174
[Network Security](./network-security.md)
175
176
## Types
177
178
### Core Client Types
179
180
```python { .api }
181
class BatchManagementClient:
182
def __init__(
183
self,
184
credential: TokenCredential,
185
subscription_id: str,
186
base_url: str = "https://management.azure.com",
187
**kwargs: Any
188
) -> None
189
190
# Operation attributes
191
batch_account: BatchAccountOperations
192
application_package: ApplicationPackageOperations
193
application: ApplicationOperations
194
location: LocationOperations
195
operations: Operations
196
certificate: CertificateOperations
197
private_link_resource: PrivateLinkResourceOperations
198
private_endpoint_connection: PrivateEndpointConnectionOperations
199
pool: PoolOperations
200
network_security_perimeter: NetworkSecurityPerimeterOperations
201
202
def close() -> None
203
def _send_request(request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse
204
```
205
206
### Common Resource Types
207
208
```python { .api }
209
class BatchAccount:
210
id: str
211
name: str
212
type: str
213
location: str
214
tags: dict
215
identity: BatchAccountIdentity
216
provisioning_state: ProvisioningState
217
account_endpoint: str
218
node_management_endpoint: str
219
auto_storage: AutoStorageProperties
220
encryption: EncryptionProperties
221
dedicated_core_quota: int
222
low_priority_core_quota: int
223
dedicated_core_quota_per_vm_family: list
224
pool_allocation_mode: PoolAllocationMode
225
public_network_access: PublicNetworkAccessType
226
network_profile: NetworkProfile
227
228
class Pool:
229
id: str
230
name: str
231
type: str
232
etag: str
233
identity: BatchPoolIdentity
234
display_name: str
235
vm_size: str
236
deployment_configuration: DeploymentConfiguration
237
scale_settings: ScaleSettings
238
provisioning_state: PoolProvisioningState
239
allocation_state: AllocationState
240
creation_time: datetime
241
provisioning_state_transition_time: datetime
242
allocation_state_transition_time: datetime
243
current_dedicated_nodes: int
244
current_low_priority_nodes: int
245
network_configuration: NetworkConfiguration
246
247
class Application:
248
id: str
249
name: str
250
type: str
251
etag: str
252
display_name: str
253
allow_updates: bool
254
default_version: str
255
```