Вызов функции Azure из ADF с ошибками реализации пути маршрута - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь вызвать функцию Azure из ADF. Функция Azure имеет Route, реализованный, как показано ниже.

[FunctionName("UpdateStatus_V1")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "V1/UpdateStatus")] HttpRequest req, ILogger log)

Кроме того, у файла хоста есть routePrefix в Azure Function.

"http": {
  "routePrefix": "DeltaAPI"
}

URI в приложении Function выглядит следующим образом.

https://functionAPP.azurewebsites.net/DeltaAPI/V1/UpdateStatus?code=secret

Когда я пытаюсь вызвать эту функцию из фабрики данных Azure, используя функцию Activity - я получаю эту ошибку

{ 
   "errorCode":"3608",
   "message":"Call to provided Azure function '' failed with status-'NotFound' and message - 'Invoking Azure function failed with HttpStatusCode - NotFound.'.",
   "failureType":"UserError",
   "target":"Azure Function1"
}

Я выполнил рекомендацию согласно документу https://docs.microsoft.com/en-us/azure/data-factory/control-flow-azure-function-activity#routing-and-queries, а код конвейера adf указан ниже:

{
  "name": "FunctionTest",
  "properties": {
    "activities": [
      {
        "name": "Azure Function1",
        "type": "AzureFunctionActivity",
        "dependsOn": [],
        "policy": {
          "timeout": "7.00:00:00",
          "retry": 0,
          "retryIntervalInSeconds": 30,
          "secureOutput": false,
          "secureInput": false
        },
        "userProperties": [],
        "typeProperties": {
          "functionName": "V1/UpdateStatus",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          },
          "body": {
            "value": "@json( '{\n \"transactionid\": \"5d283e11e62943ceb2e6e0bb5fe4898f\",\n \"status\": \"Completed\",\n \"Description\": \"\"\n }')",
            "type": "Expression"
          }
        },
        "linkedServiceName": {
          "referenceName": "AzureFunction",
          "type": "LinkedServiceReference"
        }
      }
    ],
    "annotations": []
  }
}

1 Ответ

0 голосов
/ 29 октября 2019

Операция функции Azure в конвейере ADF ожидает, что функция Azure вернет объект JSON вместо HttpResponseMessage. Вот как это можно решить: https://microsoft -bitools.blogspot.com / 2019/01 / inturing-azure-function-activity-to.html

Ref - Ошибка вызова конечной точки функции Azure из фабрики данных Azure

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...