Skip to content

queue settings is ignored when deploying pipeline behind batch endpoint #43039

@prise6

Description

@prise6
  • Package Name: azure-ai-ml
  • Package Version: 1.29.0
  • Operating System: Linux
  • Python Version: 3.11.3

Describe the bug
When deploying a batch endpoint using a pipeline component, the queue_settings (such as job_tier and priority) configured in the component are not propagated to the batch endpoint deployment. The jobs run with default settings, ignoring the specified queue_settings.

To Reproduce
Steps to reproduce the behavior:

  1. Define a pipeline component with command and set queue_settings (e.g., job_tier="Spot", priority="LowPriority").
  2. Deploy the pipeline as a batch endpoint using PipelineComponentBatchDeployment.
  3. Observe that the batch endpoint jobs do not use the specified queue_settings.

Minimal code example:

from azure.ai.ml import MLClient, command, dsl
from azure.ai.ml.entities import CommandComponent, JobResourceConfiguration, Environment
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import PipelineComponentBatchDeployment


# ...existing code to authenticate and create MLClient...

env = Environment(
    name="debugpipeline",
    image="acrindiasocledfc.azurecr.io/gdo/features-engineering-core:features-custom-env",
    datastore="workspaceblobstore",
)

hello_world = command(
    code="/path/to/hello_world.py",
    name="debug_hello_world",
    command="python hello_world.py",
    environment=env,
    resources=JobResourceConfiguration(
        instance_type="Standard_D2ds_v5",
        instance_count=1,
        instance_priority="low",
    ),
    job_tier="Spot",
    priority="LowPriority"
)

@dsl.pipeline(name="debug_pipeline")
def debug_pipeline():
        hello_world()
    return {}


deployment = PipelineComponentBatchDeployment(
    name="dep-debug-pipeline",
    description="Debug pipeline",
    endpoint_name="ep-debug-pipeline",
    component=debug_pipeline().component,
    settings={"default_compute": "serverless", "continue_on_step_failure": "false"},
    tags={"cp-deploiement": "manuel"},
)

ml_client.batch_deployments.begin_create_or_update(deployment)

Expected behavior
The batch endpoint jobs should respect the queue_settings defined in the pipeline component, running with the specified job_tier and priority. Whereas it works for resources config.

Additional context
If this behavior is expected, how can we force the job_tier or other queue_settings at batch endpoint invocation time?

edit: i fixed py code

Metadata

Metadata

Labels

Machine LearningService AttentionWorkflow: This issue is responsible by Azure service team.bugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-author-feedbackWorkflow: More information is needed from author to address the issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions