You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AI命令作业触发HttpResponseError:资源范围无效

问题:Azure AI命令作业启动时触发HttpResponseError

使用azure-ai-ml 1.20.0版本,在Notebook中启动命令作业时触发HttpResponseError,但计算、环境等资源在管道作业中可正常使用。

YAML环境配置

name: my-custom-env
channels:
  - conda-forge
dependencies:
  - python=3.9
  - (...several others)
  - pip:
    - inference-schema[numpy-support]==1.3.0
    - (...several others)

创建环境代码

from azure.ai.ml.entities import Environment
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = MLClient(
    credential=credential,
    subscription_id='my-subscription-id',
    resource_group_name='my-resource-group-name',
    workspace_name='my-workspace-name'
)
env = Environment(
    name='my-custom-env',
    description='Custom environment for my project',
    conda_file='custom_environment.yaml',
    image='mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest',
    version='0.0.0',
)
env = ml_client.environments.create_or_update(env)

环境可在非command类型作业中正常使用,无异常。

YAML作业配置(jobs/run_command.yaml)

name: job_name
display_name: Job display name
experiment_name: my_experiment_name
type: command
compute: azureml:my-compute-resource
environment: azureml:my-custom-env:0.0.0
code: .
command: echo "foo"

运行作业的代码及错误信息

通过load_job加载配置运行

from azure.ai.ml import load_job
job_config = load_job(source='jobs/run_command.yaml')
job = ml_client.jobs.create_or_update(job_config)

触发错误:

HttpResponseError: (UserError) The given resource scope /subscriptions/my-subscription-id/resourceGroups/my_resource_group/providers/Microsoft.MachineLearningServices/workspaces/my_workspace/environments/ is not valid; scope should start like /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

通过command()直接创建作业

from azure.ai.ml import command
job_config = command(
    code='.',
    command='echo "foo"',
    environment=ml_client.environments.get('my-custom-env', version='0.0.0'),
    compute='my-compute-resource',
    experiment_name='my_experiment_name',
    name='job_name',
    display_name='Job display name'
)
ml_client.create_or_update(job_config)

触发完全相同的错误。

尝试过多种指定环境的方式(名称、镜像、从工作区获取对象等),错误信息一致。

解决方案

  1. 升级azure-ai-ml版本:1.20.0版本存在命令作业环境解析的已知bug,升级到1.21.0及以上版本可直接修复,执行以下命令升级:
pip install --upgrade azure-ai-ml>=1.21.0
  1. 临时 workaround(不升级版本时):

    • 先获取环境的完整ARM ID:
      env = ml_client.environments.get('my-custom-env', version='0.0.0')
      env_arm_id = env.id
      
    • 在YAML作业配置中,将环境字段替换为该ARM ID:
      environment: <env_arm_id>
      
    • 或在command()函数中直接传入ARM ID字符串:
      job_config = command(
          # 其他参数保持不变
          environment=env_arm_id,
      )
      
  2. 验证资源名称格式:确保环境名称、版本中无特殊字符,计算资源名称正确,避免因名称解析错误导致的路径拼接问题。

内容的提问来源于stack exchange,提问作者A. S. K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:18:27