Невозможно развернуть файл определения JSON, если параметр имеет значение NULL для типа «SqlServerStoredProcedure»: «Значение» не может быть пустым.
Установка значения в пустую строку создает объект ADF, но затем опция TREAT AS NULL не проверяется.
Set-AzureRmDataFactoryV2Pipeline -DataFactoryName $dataFactory.DataFactoryName -ResourceGroupName $dataFactory.ResourceGroupName -Name $adfObj.name -DefinitionFile $definitionFilePath
Где файл определения выглядит следующим образом (я удалил ForEach и If Acitivities для пивоварения):
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "Stored Procedure1",
"type": "SqlServerStoredProcedure",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"storedProcedureName": "[meta].[usp_create_dates]",
"storedProcedureParameters": {
"end_date": {
"value": null,
"type": "DateTime"
},
"start_date": {
"value": null,
"type": "DateTime"
}
}
},
"linkedServiceName": {
"referenceName": "linkedService",
"type": "LinkedServiceReference"
}
}
]
}
}
Я ожидаю, что конвейер будет создан без каких-либо проблем на другой фабрике данных с помощью командлета powershell, поскольку онлайн-создание было успешным.
стек ошибок:
Microsoft.Rest.ValidationException: 'Value' cannot be null.
at Microsoft.Azure.Management.DataFactory.Models.StoredProcedureParameter.Validate()
at Microsoft.Azure.Management.DataFactory.Models.SqlServerStoredProcedureActivity.Validate()
at Microsoft.Azure.Management.DataFactory.Models.IfConditionActivity.Validate()
at Microsoft.Azure.Management.DataFactory.Models.ForEachActivity.Validate()
at Microsoft.Azure.Management.DataFactory.Models.PipelineResource.Validate()
at Microsoft.Azure.Management.DataFactory.PipelinesOperations.<CreateOrUpdateWithHttpMessagesAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Management.DataFactory.PipelinesOperationsExtensions.<CreateOrUpdateAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Management.DataFactory.PipelinesOperationsExtensions.CreateOrUpdate(IPipelinesOperations operations, String resourceGroupName, String factoryName, String pipelineName, PipelineResource pipeline, String ifMatch)
at Microsoft.Azure.Commands.DataFactoryV2.DataFactoryClient.CreateOrUpdatePipeline(String resourceGroupName, String dataFactoryName, String pipelineName, String rawJsonContent)
at Microsoft.Azure.Commands.DataFactoryV2.DataFactoryClient.<>c__DisplayClass75_0.<CreatePSPipeline>b__0()
at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ConfirmAction(Boolean force, String continueMessage, String processMessage, String target, Action action, Func`1 useShouldContinue)
at Microsoft.Azure.Commands.DataFactoryV2.DataFactoryClient.CreatePSPipeline(CreatePSAdfEntityParameters parameters)
at Microsoft.Azure.Commands.DataFactoryV2.SetAzureDataFactoryPipelineCommand.ExecuteCmdlet()
at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord()