Skip to content

Commit 49407fa

Browse files
authored
Merge pull request #53799 from chunliu/master
Sample code for Python
2 parents 36d64c3 + f808391 commit 49407fa

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

articles/batch/batch-sig-images.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,71 @@ private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfi
125125
}
126126
```
127127

128+
## Create a pool from a Shared Image using Python
129+
130+
You also can create a pool from a Shared Image by using the Python SDK:
131+
132+
```python
133+
# Import the required modules from the
134+
# Azure Batch Client Library for Python
135+
import azure.batch as batch
136+
import azure.batch.models as batchmodels
137+
from azure.common.credentials import ServicePrincipalCredentials
138+
139+
# Specify Batch account and service principal account credentials
140+
account = "{batch-account-name}"
141+
batch_url = "{batch-account-url}"
142+
ad_client_id = "{sp-client-id}"
143+
ad_tenant = "{tenant-id}"
144+
ad_secret = "{sp-secret}"
145+
146+
# Pool settings
147+
pool_id = "LinuxNodesSamplePoolPython"
148+
vm_size = "STANDARD_D2_V3"
149+
node_count = 1
150+
151+
# Initialize the Batch client with Azure AD authentication
152+
creds = ServicePrincipalCredentials(
153+
client_id=ad_client_id,
154+
secret=ad_secret,
155+
tenant=ad_tenant,
156+
resource="https://batch.core.windows.net/"
157+
)
158+
client = batch.BatchServiceClient(creds, batch_url)
159+
160+
# Configure the start task for the pool
161+
start_task = batchmodels.StartTask(
162+
command_line="printenv AZ_BATCH_NODE_STARTUP_DIR"
163+
)
164+
start_task.run_elevated = True
165+
166+
# Create an ImageReference which specifies the image from
167+
# Shared Image Gallery to install on the nodes.
168+
ir = batchmodels.ImageReference(
169+
virtual_machine_image_id="/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}"
170+
)
171+
172+
# Create the VirtualMachineConfiguration, specifying
173+
# the VM image reference and the Batch node agent to
174+
# be installed on the node.
175+
vmc = batchmodels.VirtualMachineConfiguration(
176+
image_reference=ir,
177+
node_agent_sku_id="batch.node.ubuntu 18.04"
178+
)
179+
180+
# Create the unbound pool
181+
new_pool = batchmodels.PoolAddParameter(
182+
id=pool_id,
183+
vm_size=vm_size,
184+
target_dedicated_nodes=node_count,
185+
virtual_machine_configuration=vmc,
186+
start_task=start_task
187+
)
188+
189+
# Create pool in the Batch service
190+
client.pool.add(new_pool)
191+
```
192+
128193
## Create a pool from a Shared Image using the Azure portal
129194

130195
Use the following steps to create a pool from a Shared Image in the Azure portal.

0 commit comments

Comments
 (0)