Design and Implement an MLOps Infrastructure · Topic 2 of 4

Data Assets, Environments, Components and Registries

AI-300 MLOps: register versioned data assets, environments and components in Azure Machine Learning and share them across workspaces with registries.

  • 5 min
In a nutshell
  • Data asset types: uri_file, uri_folder, mltable; AutoML needs mltable.
  • Assets are versioned and immutable; change means a new version.
  • Curated environment names start with AzureML-.

What it is

An asset is a named, versioned object stored in the workspace so that jobs reference it instead of copying paths and files. The four you need are data assets, environments, components and (for sharing) registries.

Data assetwhat to readEnvironmentwhat runs itComponentreusable stepRegistryshare across workspaces

How it works

Data assets

TypePoints toUse it for
uri_fileOne fileA single CSV or model file
uri_folderA folderImage folders, partitioned data
mltableA table definition (MLTable file)Tabular data with schema, transformations, and AutoML input
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: churn-raw
version: 3
type: uri_folder
path: azureml://datastores/workspaceblobstore/paths/churn/2026-10/
az ml data create --file data.yml

A path can be a datastore URI, an https:// or abfss:// address, or a local path that is uploaded. Jobs reference the asset as azureml:churn-raw:3, or azureml:churn-raw@latest for the newest version. The input mode controls delivery: ro_mount (read only mount), download (copy to the node) or direct (pass the path string).

The same asset in Python SDK v2:

from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes

data = Data(
    name="churn-raw",
    version="3",
    type=AssetTypes.URI_FOLDER,
    path="azureml://datastores/workspaceblobstore/paths/churn/2026-10/",
    description="Monthly churn extract",
)
ml_client.data.create_or_update(data)

Registering a new version never changes the old one, so a run from last month can still be reproduced with the exact data it used.

Environments

An environment defines the software a job or endpoint runs in. Curated environments (names start with AzureML-) are prebuilt and maintained by Microsoft. Custom environments start from a base image plus a conda file, or from a Docker build context.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: sklearn-train
version: 2
image: mcr.microsoft.com/azureml/openmpi4.1.2-ubuntu20.04
conda_file: conda.yaml

Azure Machine Learning builds the image on demand and caches it, so changing the conda file means creating a new version. Pin package versions in the conda file to keep runs reproducible. Reference it as azureml:sklearn-train:2. A Docker build context (a folder with a Dockerfile) is the option when you need system packages or full control of the image. The built image is stored in the container registry linked to the workspace, so jobs on a cluster start from a cached image rather than rebuilding.

Components

A component is a reusable, versioned pipeline step with declared inputs, outputs, code, an environment and a command.

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: train_model
version: 1
display_name: Train model
inputs:
  training_data:
    type: uri_folder
  lr:
    type: number
    default: 0.01
outputs:
  model_out:
    type: mlflow_model
code: ./src
environment: azureml:sklearn-train:2
command: >-
  python train.py --data ${{inputs.training_data}}
  --lr ${{inputs.lr}} --model ${{outputs.model_out}}

Register it with az ml component create --file train.yml. Because inputs and outputs are typed, components snap together in pipelines, and a pipeline step is reused (cached) when the component version and inputs have not changed.

Registries

A registry is a separate Azure resource that stores assets for several workspaces, so the same model, component or environment is promoted from dev to test to prod without copying files by hand. A registry can be replicated to several regions.

$schema: https://azuremlschemas.azureedge.net/latest/registry.schema.json
name: mlreg-shared
location: eastus
replication_locations:
  - location: eastus
  - location: westeurope
az ml registry create --file registry.yml --resource-group rg-ml
az ml component create --file train.yml --registry-name mlreg-shared

Any workspace the user can access can then reference azureml://registries/mlreg-shared/components/train_model/versions/1. Consumers need the AzureML Registry User role; publishers need write rights on the registry.

A worked example

A platform team publishes a hardened training environment and a train_model component to mlreg-shared. Dev, test and prod workspaces all reference those exact versions, so the code that passed tests is the code that runs in production.

How the exam asks about this

  • "Reuse the same component in three workspaces in different regions." Create it in a registry replicated to those regions.
  • "Point a job at newest data without editing YAML." Reference the data asset with @latest.
  • "Tabular data with a defined schema for an AutoML job." An mltable data asset.

What to remember for the exam

  • Data asset types: uri_file, uri_folder, mltable; AutoML needs mltable.
  • Assets are versioned and immutable; change means a new version.
  • Curated environment names start with AzureML-.
  • Components have typed inputs and outputs and enable step reuse in pipelines.
  • A registry shares assets across workspaces and can replicate across regions.
Watch out

A workspace asset cannot be used in another workspace. Sharing needs a registry (or re-registering), not a copy of the YAML alone.

Common mistakes

Using latest in production. @latest is handy for development, but production pipelines should pin a version so a rerun uses the same data.

Putting data inside the environment. Environments hold software, data belongs in a data asset.

Forgetting access on the registry. Consumers need the AzureML Registry User role.

Check yourself

  • Which data asset type does an AutoML job require for training data?

    mltable.

  • What makes a component reusable in a pipeline?

    Typed inputs and outputs plus a version, so steps connect and can be reused.

  • Which resource shares models and components across workspaces?

    An Azure Machine Learning registry.

Topic 2 of 4 in Design and Implement an MLOps Infrastructure

Test yourself on Design and Implement an MLOps Infrastructure

The full Microsoft AI-300 question bank has 650 questions, with timed practice exams and an explanation for every answer.

This study guide is independent and is not affiliated with, endorsed by, or sponsored by Microsoft. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.