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

Azure Data Factory V2含运行时参数数据集执行失败求助

解决Azure Data Factory V2中带参数数据集的模板验证错误

看起来你遇到的模板验证错误大概率是JSON格式的问题——你提供的数据集和管道JSON里用了HTML转义的"代替了标准双引号",这会让ADF的模板解析器无法正确识别JSON结构,从而抛出那个位置41的字符错误。我帮你梳理下解决步骤:

第一步:修正JSON中的转义字符

ADF的JSON定义要求使用标准双引号",而不是HTML转义后的"。你需要把所有"替换成",修正后的JSON如下:

修正后的数据集JSON

{
  "name": "DS-PARAM",
  "properties": {
    "linkedServiceName": {
      "referenceName": "LS-ADLS",
      "type": "LinkedServiceReference"
    },
    "type": "AzureDataLakeStoreFile",
    "typeProperties": {
      "fileName": {
        "value": "@dataset().file",
        "type": "Expression"
      },
      "folderPath": {
        "value": "@dataset().directory",
        "type": "Expression"
      }
    }
  },
  "parameters": {
    "directory": {
      "type": "String"
    },
    "file": {
      "type": "String"
    }
  }
}

修正后的管道JSON

{
  "name": "pipeline2",
  "properties": {
    "activities": [
      {
        "name": "Copy1",
        "type": "Copy",
        "dependsOn": [],
        "policy": {
          "timeout": "7.00:00:00",
          "retry": 0,
          "retryIntervalInSeconds": 20
        },
        "typeProperties": {
          "source": {
            "type": "AzureDataLakeStoreSource",
            "recursive": true
          },
          "sink": {
            "type": "AzureDataLakeStoreSink"
          },
          "enableStaging": false,
          "cloudDataMovementUnits": 0
        },
        "inputs": [
          {
            "referenceName": "DS-PARAM",
            "type": "DatasetReference",
            "parameters": {
              "directory": "/",
              "file": "readme.txt"
            }
          }
        ],
        "outputs": [
          {
            "referenceName": "DS-PARAM",
            "type": "DatasetReference",
            "parameters": {
              "directory": "/",
              "file": "readme2.txt"
            }
          }
        ]
      }
    ]
  }
}

第二步:验证参数配置细节

修正JSON后,再检查几个关键配置确保没问题:

  • 数据集的parameters定义里,directory和file都是String类型,符合你的需求。
  • 数据集里fileName和folderPath的表达式@dataset().file、@dataset().directory拼写正确,ADF的表达式是区分大小写的,注意不要写错。
  • 管道中引用数据集时,parameters的键名和数据集定义的参数名完全一致,传入的路径值/也是有效的ADLS根路径。

第三步:重新部署或创建资源

你可以选择两种方式重新配置:

  1. ARM模板部署:把修正后的JSON替换到你的ARM模板里,确保整个模板都是标准JSON格式,没有转义字符,然后重新部署。
  2. ADF新界面创建:直接在数据集的参数面板添加directory和file参数,然后在fileName和folderPath的配置中选择使用参数表达式;最后在管道的Copy活动里引用这个数据集,传入对应的参数值即可。

按照这个流程操作后,应该能解决模板验证失败的问题。如果还是报错,可以去ADF的监控面板查看更详细的错误日志,确认是否还有其他JSON结构或者参数引用的问题。

内容的提问来源于stack exchange,提问作者g_brahimaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:36:11