NULL передается из конвейера в связанный сервис baseURL

У меня есть конвейер, который будет перебирать файлы и копировать их в место хранения.

BaseURL и relativeURL хранятся в файле json.

Я могу прочитать в этом файле, и это действительно так.

Я параметризовал связанный сервис baseURL, и это работает при тестировании из связанной службы и из набора данных.

Однако когда я пытаюсь отладить конвейер, я получаю сообщение об ошибке:

код: BadRequest
сообщение: null
target: pipeline // runid / 310b8ac1-2ce6-4c7c-a1ad-433ee9019e9b
подробности: null
ошибка: null

Похоже, что из активности в конвейере вместо baseURL передается нулевое значение.

Я перебрал значения из моего файла конфигурации, он читается, и значения верны. На самом деле кажется, что конвейер не передает правильное значение для baseURL.

Нужно ли мне изменять код json за конвейером, чтобы это работало?

Если это поможет, ниже приведены json для связанной службы, набора данных и конвейера:

- Связанная служба:

{
"name": "ls_http_opendata_ecdc_europe_eu",
"properties": {
    "parameters": {
        "baseURL": {
            "type": "string"
        }
    },
    "annotations": [],
    "type": "HttpServer",
    "typeProperties": {
        "url": "@linkedService().baseURL",
        "enableServerCertificateValidation": true,
        "authenticationType": "Anonymous"
    }
}
}

--dataset

{
"name": "ds_ecdc_raw_csv_http",
"properties": {
    "linkedServiceName": {
        "referenceName": "ls_http_opendata_ecdc_europe_eu",
        "type": "LinkedServiceReference"
    },
    "parameters": {
        "relativeURL": {
            "type": "string"
        },
        "baseURL": {
            "type": "string"
        }
    },
    "annotations": [],
    "type": "DelimitedText",
    "typeProperties": {
        "location": {
            "type": "HttpServerLocation",
            "relativeUrl": {
                "value": "@dataset().relativeURL",
                "type": "Expression"
            }
        },
        "columnDelimiter": ",",
        "escapeChar": "\\",
        "firstRowAsHeader": true,
        "quoteChar": "\""
    },
    "schema": []
}
}

--трубопровод

{
"name": "pl_ingest_ecdc_data",
"properties": {
    "activities": [
        {
            "name": "lookup ecdc filelist",
            "type": "Lookup",
            "dependsOn": [],
            "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false,
                "secureInput": false
            },
            "userProperties": [],
            "typeProperties": {
                "source": {
                    "type": "JsonSource",
                    "storeSettings": {
                        "type": "AzureBlobStorageReadSettings",
                        "recursive": true,
                        "enablePartitionDiscovery": false
                    },
                    "formatSettings": {
                        "type": "JsonReadSettings"
                    }
                },
                "dataset": {
                    "referenceName": "ds_ecdc_file_list",
                    "type": "DatasetReference"
                },
                "firstRowOnly": false
            }
        },
        {
            "name": "execute copy for every record",
            "type": "ForEach",
            "dependsOn": [
                {
                    "activity": "lookup ecdc filelist",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "userProperties": [],
            "typeProperties": {
                "items": {
                    "value": "@activity('lookup ecdc filelist').output.value",
                    "type": "Expression"
                },
                "activities": [
                    {
                        "name": "Copy data1",
                        "type": "Copy",
                        "dependsOn": [],
                        "policy": {
                            "timeout": "7.00:00:00",
                            "retry": 0,
                            "retryIntervalInSeconds": 30,
                            "secureOutput": false,
                            "secureInput": false
                        },
                        "userProperties": [],
                        "typeProperties": {
                            "source": {
                                "type": "DelimitedTextSource",
                                "storeSettings": {
                                    "type": "HttpReadSettings",
                                    "requestMethod": "GET"
                                },
                                "formatSettings": {
                                    "type": "DelimitedTextReadSettings"
                                }
                            },
                            "sink": {
                                "type": "DelimitedTextSink",
                                "storeSettings": {
                                    "type": "AzureBlobFSWriteSettings"
                                },
                                "formatSettings": {
                                    "type": "DelimitedTextWriteSettings",
                                    "quoteAllText": true,
                                    "fileExtension": ".txt"
                                }
                            },
                            "enableStaging": false,
                            "translator": {
                                "type": "TabularTranslator",
                                "typeConversion": true,
                                "typeConversionSettings": {
                                    "allowDataTruncation": true,
                                    "treatBooleanAsNumber": false
                                }
                            }
                        },
                        "inputs": [
                            {
                                "referenceName": "DelimitedText1",
                                "type": "DatasetReference",
                                "parameters": {
                                    "sourceBaseURL": {
                                        "value": "@item().sourceBaseURL",
                                        "type": "Expression"
                                    },
                                    "sourceRelativeURL": {
                                        "value": "@item().sourceRelativeURL",
                                        "type": "Expression"
                                    }
                                }
                            }
                        ],
                        "outputs": [
                            {
                                "referenceName": "ds_ecdc_raw_csv_dl",
                                "type": "DatasetReference",
                                "parameters": {
                                    "fileName": {
                                        "value": "@item().sinkFileName",
                                        "type": "Expression"
                                    }
                                }
                            }
                        ]
                    }
                ]
            }
        }
    ],
    "concurrency": 1,
    "annotations": []
}
}

person wilson_smyth    schedule 04.04.2021    source источник


Ответы (1)


Я воспроизвел вашу ошибку.

{"code":"BadRequest","message":null,"target":"pipeline//runid/abd35329-3625-490b-85cf-f6d0de3dac86","details":null,"error":null}

Это потому, что вы не передали свой baseURL для связывания службы в исходном наборе данных. Пожалуйста, сделайте это:

введите описание изображения здесь

И код JSON набора данных должен быть таким:

{
    "name": "ds_ecdc_raw_csv_http",
    "properties": {
        "linkedServiceName": {
            "referenceName": "ls_http_opendata_ecdc_europe_eu",
            "type": "LinkedServiceReference",
            "parameters": {
                "baseURL": {
                    "value": "@dataset().baseURL",
                    "type": "Expression"
                }
            }
        },
        "parameters": {
            "relativeURL": {
                "type": "string"
            },
            "baseURL": {
                "type": "string"
            }
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "HttpServerLocation",
                "relativeUrl": {
                    "value": "@dataset().relativeURL",
                    "type": "Expression"
                }
            },
            "columnDelimiter": ",",
            "escapeChar": "\\",
            "firstRowAsHeader": true,
            "quoteChar": "\""
        },
        "schema": []
    }
}
person Steve Zhao    schedule 06.04.2021
comment
Спасибо. предоставленный мной набор данных json был сгенерирован редактором и никоим образом не изменен мной. могут быть обстоятельства, при которых кажется, что он создает неправильный json. - person wilson_smyth; 07.04.2021