如何在Azure数据工厂管道中集成WebJob

时间:2017-10-05 14:23:54

标签: azure-webjobs azure-data-factory azure-blob-storage

我正在尝试将WebJob集成到ADF管道中。 webjob是一个非常简单的控制台应用程序:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
        $("#introID").hover(function(){
            $("#frame").attr("src", "assets/images/much-more-than-gasoline.png");
        });
    });
</script>

我们如何通过ADF管道调用此webjob并在azure blob存储中存储响应代码(成功时为HTTP 200)?

1 个答案:

答案 0 :(得分:2)

2018年12月更新:

如果您正在考虑使用azure功能,天蓝色数据工厂NOW为您提供了一个天蓝色的功能步骤!基本原理与您必须使用HTTP触发器公开azure函数相同。但是,这提供了更好的安全性,因为您可以使用ACL

指定数据工厂实例对azure函数的访问权限
  

参考:https://azure.microsoft.com/en-us/blog/azure-functions-now-supported-as-a-step-in-azure-data-factory-pipelines/

原始答案

  • 从发布的评论中我相信你不想使用自定义活动路线。
  • 您可以尝试使用复制任务,即使这可能不是预期目的。
  • httpConnector可用于从网络来源复制数据。
  

https://docs.microsoft.com/en-us/azure/data-factory/v1/data-factory-http-connector

  • 复制任务触发http端点
  • 您可以指定从Basic到的各种身份验证机制 OAuth2用户。
  • 下面我使用终点来触发azure函数进程,输出保存在datalake文件夹中进行日志记录(显然你可以使用其他东西,比如你的情况就是blob存储。)

基本链接服务

{
  "name": "linkedservice-httpEndpoint",
  "properties": {
    "type": "Http",
    "typeProperties": {
      "url": "https://azurefunction.api.com/",
      "authenticationType": "Anonymous"
    }
  }
}

基本输入数据集

{
  "name": "Http-Request",
  "properties": {
    "type": "Http",
    "linkedServiceName": "linkedservice-httpEndpoint",
    "availability": {
      "frequency": "Minute",
      "interval": 30
    },
    "typeProperties": {
      "relativeUrl": "/api/status",
      "requestMethod": "Get",
      "format": {
        "type": "TextFormat",
        "columnDelimiter": ","
      }
    },
    "structure": [
      {
        "name": "Status",
        "type": "String"
      }
    ],
    "published": false,
    "external": true,
    "policy": {}
  }
}

输出

{
    "name": "Http-Response",
    "properties": {
        "structure": [
            ...
        ],
        "published": false,
        "type": "AzureDataLakeStore",
        "linkedServiceName": "linkedservice-dataLake",
        "typeProperties": {
          ...
        },
        "availability": {
            ...
        },
        "external": false,
        "policy": {}
    }
}

活动

{
        "type": "Copy",
        "name": "Trigger Azure Function or WebJob with Http Trigger",
        "scheduler": {
          "frequency": "Day",
          "interval": 1
        },
        "typeProperties": {
          "source": {
            "type": "HttpSource",
            "recursive": false
          },
          "sink": {
            "type": "AzureDataLakeStoreSink",
            "copyBehavior": "MergeFiles",
            "writeBatchSize": 0,
            "writeBatchTimeout": "00:00:00"
          }
        },
        "inputs": [
          {
            "name": "Http-Request"
          }
        ],
        "outputs": [
          {
            "name": "Http-Response"
          }
        ],
        "policy": {
          ...
        }        
      }