An Azure machine learning service for building and deploying models.
Hello !
Thank you for posting on Microsoft Learn.
The error means the data_transformation node wasn’t actually bound to an input named one_hot_encoder at submission time, the service is complaining about a missing binding, not about the file itself. Designer “auto-wires” ports; the SDK/YAML path won’t unless you pass every required input with the exact name and a compatible type. The most common causes and fixes are below.
Make sure the component interface really exposes one_hot_encoder (not onehot_encoder, one_hot_enc ....) and that the pipeline passes that exact key to the node.
Inspect the component: az ml component show -n data_transformation -v <ver> → verify inputs.one_hot_encoder.
If you authored with @component, confirm the YAML has inputs: one_hot_encoder: {type: uri_file} and your command uses ${{inputs.one_hot_encoder}}. https://learn.microsoft.com/en-us/azure/machine-learning/reference-yaml-job-pipeline?view=azureml-api-2
In SDK v2, you must pass it explicitly. Either pin a version or use @latest (see exact syntax below). Example (SDK v2):
from azure.ai.ml import Input
from azure.ai.ml.constants import AssetTypes
ohe = Input(type=AssetTypes.URI_FILE, path="azureml:encoder-pkl@latest")
imp = Input(type=AssetTypes.URI_FILE, path="azureml:imputer-pkl@latest")
feat = Input(type=AssetTypes.URI_FILE, path="azureml:feature-names-pkl@latest")
transform = data_transformation(
raw_data=ingest.outputs.raw_data,
one_hot_encoder=ohe,
imputer_pkl=imp,
feature_names=feat,
)
YAML equivalent:
jobs:
transform:
type: command
component: file:components/data_transformation.yaml
inputs:
raw_data: ${{parent.jobs.ingest.outputs.raw_data}}
one_hot_encoder: azureml:encoder-pkl@latest
imputer_pkl: azureml:imputer-pkl@latest
feature_names: azureml:feature-names-pkl@latest
Note the azureml:<name>@latest (or :<version>) syntax. https://docs.azure.cn/en-us/machine-learning/reference-yaml-job-command?view=azureml-api-2