如何通过Azure创建运行管道API触发管道?

时间:2019-06-27 19:18:49

标签: node.js azure azure-data-factory

我有一个Azure数据工厂订阅,我想通过我的node.js应用程序触发管道。管道将数据从蔚蓝宇宙传输到Azure Blob存储。我已经手动触发了管道。而且我尝试使用node.js应用程序执行相同操作,但是它引发以下错误:

{ Error: tunneling socket could not be established, cause=connect ETIMEDOUT 10.0.0.2:8080
    at ClientRequest.onError (/home/deepti/Desktop/dbmanager/node_modules/tunnel-agent/index.js:177:17)
    at Object.onceWrapper (events.js:286:20)
    at ClientRequest.emit (events.js:198:13)
    at Socket.socketErrorListener (_http_client.js:392:9)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }

这是我在node.js应用程序中的代码:

Request.post("POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}/createRun?api-version=2018-06-01",(err,res,body)=>{
        if(err) {
            return console.log(err);
        }
        console.dir(JSON.parse(body));
        });

任何人都可以指导我如何纠正此错误并继续进行。我还需要生成一些授权令牌吗?

此外,我实际上想将从cosmos DB备份了1个月的数据备份到Azure Blob,这可能吗?

1 个答案:

答案 0 :(得分:1)

  

1。任何人都可以指导我如何纠正此错误并继续进行。我还需要生成一些授权令牌吗?

是的,在创建管道运行之前,您需要在Headers中生成Authorization令牌。您可以参考ADAL nodejs sdk生成令牌。如果您不知道这些参数是什么,

enter image description here

,然后请参考此tutorial和此blog以获得它们的概念。 另外请注意,您还需要向广告应用授予ADF权限。

enter image description here

enter image description here

最后,您可以调用Pipelines - Create Run REST api并在header中提供身份验证令牌。

  

2。此外,我实际上想将从cosmos DB备份了一个月的数据到Azure Blob,这可能吗?

如果要备份天蓝色blob存储数据,请参阅此link。您可以在日程表中使用日程表中的AzCopy来备份数据。