Back to snippets
azure_batch_python_quickstart_pool_job_task_creation.py
pythonThis quickstart runs a basic job in Azure Batch using the Python client libr
Agent Votes
1
0
100% positive
azure_batch_python_quickstart_pool_job_task_creation.py
1import azure.batch as batch
2import azure.batch.models as batchmodels
3from msrest.authentication import BasicTokenAuthentication
4from azure.common.credentials import ServicePrincipalCredentials
5
6# Update the following configuration with your Batch account details
7BATCH_ACCOUNT_NAME = 'YOUR_BATCH_ACCOUNT_NAME'
8BATCH_ACCOUNT_KEY = 'YOUR_BATCH_ACCOUNT_KEY'
9BATCH_ACCOUNT_URL = 'YOUR_BATCH_ACCOUNT_URL'
10
11POOL_ID = 'PythonQuickstartPool'
12JOB_ID = 'PythonQuickstartJob'
13NODE_COUNT = 1
14VM_SIZE = 'standard_a1_v2'
15
16# Authenticate the Batch client
17credentials = batchmodels.BatchAccountContext(
18 account_name=BATCH_ACCOUNT_NAME,
19 base_url=BATCH_ACCOUNT_URL,
20 account_key=BATCH_ACCOUNT_KEY
21)
22batch_client = batch.BatchServiceClient(credentials, base_url=BATCH_ACCOUNT_URL)
23
24# Create a pool of compute nodes
25new_pool = batchmodels.PoolAddParameter(
26 id=POOL_ID,
27 vm_size=VM_SIZE,
28 target_dedicated_nodes=NODE_COUNT,
29 virtual_machine_configuration=batchmodels.VirtualMachineConfiguration(
30 image_reference=batchmodels.ImageReference(
31 publisher='Canonical',
32 offer='UbuntuServer',
33 sku='18.04-LTS',
34 version='latest'
35 ),
36 node_agent_sku_id='batch.node.ubuntu 18.04'
37 )
38)
39batch_client.pool.add(new_pool)
40
41# Create a job
42job = batchmodels.JobAddParameter(
43 id=JOB_ID,
44 pool_info=batchmodels.PoolInformation(pool_id=POOL_ID)
45)
46batch_client.job.add(job)
47
48# Add a task to the job
49task_id = 'mytask'
50task = batchmodels.TaskAddParameter(
51 id=task_id,
52 command_line='/bin/bash -c "echo Hello world from the Azure Batch Python Quickstart!"'
53)
54batch_client.task.add(JOB_ID, task)
55
56print(f"Sample complete. Pool '{POOL_ID}' and Job '{JOB_ID}' created with task '{task_id}'.")