A fast CLI for submitting and managing Azure ML jobs via pure REST APIs
Project description
Azure Jobs
A fast, lightweight CLI for submitting and managing Azure ML jobs via pure REST APIs. Uses YAML template inheritance, sensible defaults, and rich terminal output. Supports both Azure ML compute clusters and Singularity virtual clusters.
Install
pipx install azure_jobs
For development:
uv pip install -e .
Quick Start
aj ws set # configure workspace (interactive)
aj template pull user/templates # clone shared templates
aj template list # show available templates
aj run -t gpu python train.py # submit a job
aj job list # monitor jobs
aj job logs <id> # view logs
Commands
Job Submission
aj run -t gpu python train.py # submit using "gpu" template
aj run python train.py # re-use last template
aj run -d python train.py # dry run — inspect config without submitting
aj run -L python train.py # run locally for testing
| Flag | Purpose |
|---|---|
-t |
Template name |
-n |
Number of nodes |
-p |
Processes per node |
-d |
Dry run |
-y |
Skip confirmation |
-L |
Run locally |
Job Management
aj job list # list recent cloud jobs
aj job list -s Running # filter by status
aj job show <id> # show job details
aj job cancel <id> # cancel a running job
aj job logs <id> # download and display logs
aj list # show local submission history
Templates
aj template list # list available templates
aj template show <name> # display resolved config after inheritance
aj template validate # check all templates for errors
aj template pull <repo> # clone template repository
aj template push -m "msg" # commit and push local changes
Workspace & Auth
aj ws list # list workspaces in subscription
aj ws set # set active workspace (interactive picker)
aj auth status # show login and credential status
aj auth login # delegate to az login
Resources
aj env list # list registered environments
aj env show <name> # show environment versions and images
aj ds list # list datastores
aj ds show <name> # show datastore details
aj quota list # show Singularity VC quota and availability
aj quota list --aml # show AML compute cluster availability
aj exp list # list experiments (aggregated from jobs)
aj image list # list Singularity curated base images
Other
aj config show # print all configuration
aj config timezone Asia/Shanghai # set display timezone
aj dash # open interactive TUI dashboard
How It Works
- Templates define reusable job configs as YAML with optional base inheritance
aj runloads a template, resolves the inheritance chain, merges configs, and applies CLI overrides- Code upload — zips your code, uploads to workspace blob storage, and registers a code asset
- Environment — registers Docker images as Azure ML environment versions (with SHA-based dedup)
- Submission — builds a REST job body and submits via
PUT /jobs/{name}to Azure Resource Manager - Tracking — records each submission locally to
record.jsonland prints the portal URL
No dependency on amlt or the azure-ai-ml SDK. All Azure interactions use lightweight REST APIs with AzureCliCredential.
Documentation
| Document | Contents |
|---|---|
| Architecture | Module layout, data flow, design decisions |
| Configuration | Templates, inheritance, merge rules, environment variables |
| REST API | REST client design, endpoints, authentication |
| Roadmap | Planned features and milestones |
Testing
uv run pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azure_jobs-0.1.14.tar.gz.
File metadata
- Download URL: azure_jobs-0.1.14.tar.gz
- Upload date:
- Size: 154.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a431b16aeb7a5b4ffd940cdc46bba40a14cbb577b0239d7f71a2b9c04ce14302
|
|
| MD5 |
aaed0021932f3a942b4a15eca52efe8f
|
|
| BLAKE2b-256 |
b9506ec666e9d32d95b4ea6ea0b371c4b40039fdd974a0ea8d72ddf9f69c94a5
|
Provenance
The following attestation bundles were made for azure_jobs-0.1.14.tar.gz:
Publisher:
release.yml on HSPK/azure_jobs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_jobs-0.1.14.tar.gz -
Subject digest:
a431b16aeb7a5b4ffd940cdc46bba40a14cbb577b0239d7f71a2b9c04ce14302 - Sigstore transparency entry: 1347434740
- Sigstore integration time:
-
Permalink:
HSPK/azure_jobs@e49df5b2f05430a9e43b8b58eceff2a5d75621c7 -
Branch / Tag:
refs/tags/v0.1.14 - Owner: https://github.com/HSPK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e49df5b2f05430a9e43b8b58eceff2a5d75621c7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file azure_jobs-0.1.14-py3-none-any.whl.
File metadata
- Download URL: azure_jobs-0.1.14-py3-none-any.whl
- Upload date:
- Size: 97.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4aa5a5f3e508184fb69fa06e2bb410643f474304d5a57a441b50a63e302f23f
|
|
| MD5 |
23544c9de8170b3495f7de77bb85c49b
|
|
| BLAKE2b-256 |
2006df34af13f828433c48b6ee0b45099db5ea26c22bd6a402f2257b5b9655f9
|
Provenance
The following attestation bundles were made for azure_jobs-0.1.14-py3-none-any.whl:
Publisher:
release.yml on HSPK/azure_jobs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_jobs-0.1.14-py3-none-any.whl -
Subject digest:
e4aa5a5f3e508184fb69fa06e2bb410643f474304d5a57a441b50a63e302f23f - Sigstore transparency entry: 1347435036
- Sigstore integration time:
-
Permalink:
HSPK/azure_jobs@e49df5b2f05430a9e43b8b58eceff2a5d75621c7 -
Branch / Tag:
refs/tags/v0.1.14 - Owner: https://github.com/HSPK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e49df5b2f05430a9e43b8b58eceff2a5d75621c7 -
Trigger Event:
push
-
Statement type: