如何使用@concat函数在ARM模板中转义单引号

时间:2020-01-09 10:11:20

标签: java azure arm-template

我有用于带有目标数据集接收器的数据工厂管道的模板,我想使用资源管理器和Java Azure SDK进行部署:

{
      "name": "[concat(parameters('factoryName'), '/', parameters('pipeline_pipelineConfiguration_pipelineTemplate_destinationDataset01'))]",
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[parameters('pipeline_pipelineConfiguration_pipelineTemplate_destinationLinkedService01')]",
          "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "fileName": {
              "value": "[concat('@concat(utcnow(\'yyyy-MM-dd\'),\'-',parameters('pipeline_pipelineConfiguration_destination'),',.txt\'')]",
              "type": "Expression"
            },
            "container": ""
          },
          "columnDelimiter": ",",
          "escapeChar": "\\",
          "firstRowAsHeader": true,
          "quoteChar": "\""
        },
        "schema": []
      },
      "dependsOn": [
        "[concat(variables('factoryId'), '/linkedServices/', parameters('pipeline_pipelineConfiguration_pipelineTemplate_DestinationLinkedService01'))]"
      ]
    }

我得到异常:

com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape ''' (code 39)

最可能是因为 fileName value 参数。

为文件名提供导出数据时计算出的日期以及部分来自参数的名称的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用变量并计算该变量的值 或使用replace()函数。