Развертывание конвейера со значением параметра NULL завершается неудачно с помощью Set-AzureRmDataFactoryV2Pipeline - PullRequest
0 голосов
/ 21 мая 2019

Невозможно развернуть файл определения 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...