Azure RegisterModel

Azure RegisterModel

Certified

Register a model version in the Azure Machine Learning model registry

Creates a new version of a model, capturing lineage back to the training job (JOB_OUTPUT), a file uploaded to the workspace's default datastore (INTERNAL_STORAGE), or an existing datastore path (DATASTORE_URI). Model versions are immutable: set modelVersion explicitly to control it, or leave it empty to auto-increment from the model's latest version.

yaml
type: io.kestra.plugin.azure.ml.RegisterModel

Register a model produced by a training job.

yaml
id: azure_ml_register_model_from_job
namespace: company.team

tasks:
  - id: train
    type: io.kestra.plugin.azure.ml.SubmitCommandJob
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
    resourceGroupName: ml-rg
    workspaceName: ml-workspace
    computeName: cpu-cluster
    environmentId: "azureml:AzureML-sklearn-1.5:1"
    command: "python train.py"
    outputs:
      model_dir: "azureml://datastores/workspaceblobstore/paths/outputs/model"

  - id: register
    type: io.kestra.plugin.azure.ml.RegisterModel
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
    resourceGroupName: ml-rg
    workspaceName: ml-workspace
    modelName: fraud-detector
    source: JOB_OUTPUT
    jobName: "{{ outputs.train.jobName }}"
    jobOutputName: model_dir

Register a model file stored in Kestra's internal storage.

yaml
id: azure_ml_register_model_from_storage
namespace: company.team

inputs:
  - id: model_file
    type: FILE

tasks:
  - id: register
    type: io.kestra.plugin.azure.ml.RegisterModel
    tenantId: "{{ secret('AZURE_TENANT_ID') }}"
    clientId: "{{ secret('AZURE_CLIENT_ID') }}"
    clientSecret: "{{ secret('AZURE_CLIENT_SECRET') }}"
    subscriptionId: "{{ secret('AZURE_SUBSCRIPTION_ID') }}"
    resourceGroupName: ml-rg
    workspaceName: ml-workspace
    modelName: fraud-detector
    source: INTERNAL_STORAGE
    from: "{{ inputs.model_file }}"
Properties

Model name

Name of the model to register a new version for

Resource group name

Resource group containing the Machine Learning workspace

Possible Values
JOB_OUTPUTINTERNAL_STORAGEDATASTORE_URI

Model source

Origin of the model artifact being registered

Subscription ID

Azure subscription GUID that owns the Machine Learning workspace

Azure AD tenant ID (GUID)

Workspace name

Name of the Azure Machine Learning workspace

Client ID of the Azure AD application

Application (client) ID used for service principal authentication.

Client secret for the Azure AD application

Secret value associated with the client ID; store in a Kestra secret.

Datastore URI

Required when source=DATASTORE_URI: an existing azureml://datastores/<name>/paths/<path> (or plain storage) URI for the model artifact

Internal storage file

Required when source=INTERNAL_STORAGE: a kestra:// internal storage URI for the model artifact to upload

Job name

Required when source=JOB_OUTPUT: the Azure Machine Learning job that produced the model artifact

Job output name

Required when source=JOB_OUTPUT: the named job output pointing to the model artifact

Description

Free-text description stored with the model version

Defaultcustom_model

Model type

Model framework flavor, e.g. custom_model, mlflow_model, triton_model; defaults to custom_model

Model version

Explicit version to register; when not set, the next version is computed automatically from the model's current latest version

PEM-encoded certificate content for client authentication

PEM text for certificate-based auth; alternative to clientSecret.

Model name

Formaturi

Model URI

Storage URI backing this model version

Studio URL

Deep link to the model version in Azure ML Studio

Model version

Version registered, either the explicit version or the auto-incremented one