JSON .Net API фабрики данных Azure. - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь извлечь конвейер JSON и использовать его для создания аналогичного конвейера с использованием .Net API и Newtonsoft json для сериализации объекта PipelineResource.

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

Например, для конвейера noddy Newtonsoft возвращает 1-й json ниже и ADF 2-й.

Как извлечь действительный JSON-конвейер, используя.Net.

Я могу создать PipelineResource с помощью DataFactoryManagementClient.Pipelines.Get и сериализовать его с помощью JSON.net.Но полученный JSON не совпадает с тем, который создается кодом фабрики данных.сериализованный код не может быть использован для создания конвейера.

например,

PipelineResource plr = client.Pipelines.Get(resourceGroup, dataFactoryName, "PL_New");
string output = JsonConvert.SerializeObject(plr, Formatting.Indented,
                        new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });

дает следующее

{
  "properties.activities": [
    {
      "typeProperties.method": "GET",
      "typeProperties.url": "www.google.ie",
      "typeProperties.headers": {},
      "policy": {
        "timeout": "7.00:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureInput": false,
        "secureOutput": false
      },
      "name": "Web1",
      "dependsOn": [],
      "userProperties": [],
      "typeProperties": {
        "url": "www.google.ie",
        "method": "GET",
        "headers": {}
      }
    }
  ],
  "properties.annotations": [],
  "properties.folder": {
    "name": "new/one"
  },
  "id": "/subscriptions/?????????????????/resourceGroups/MyResourceGroup/providers/Microsoft.DataFactory/factories/MyNewADF/pipelines/PL_New",
  "name": "PL_New",
  "type": "Microsoft.DataFactory/factories/pipelines",
  "etag": "820000000-0000-0000-0000-000000000000"
}

, где ADF создает

{
    "name": "PL_New",
    "properties": {
        "activities": [
            {
                "name": "Web1",
                "type": "WebActivity",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "url": "www.google.ie",
                    "method": "GET"
                }
            }
        ],
        "folder": {
            "name": "new/one"
        },
        "annotations": []
    }
}

обратите внимание на разницу в объекте свойств.

Я не могу использовать созданный Newtonsoft JSON для создания нового конвейера (с изменением имени, конечно).

Как я могу создать JSON таким образомпредоставлено ADF.

...