node.js - 如何通过 Azure 创建运行管道 API 触发管道?
问题描述
我有一个 Azure 数据工厂订阅,我想通过我的 node.js 应用程序触发管道。管道将数据从 azure cosmos 传输到 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 app 中的代码:
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));
});
谁能指导我如何纠正此错误并继续进行。我是否也需要生成一些授权令牌?
另外,我实际上想将 1 个月前的数据从 cosmos DB 备份到 Azure Blob,这可能吗?
解决方案
1.谁能指导我如何纠正此错误并继续进行。我是否也需要生成一些授权令牌?
是的,在创建管道运行之前,您需要在 Headers 中生成授权令牌。您可以参考ADAL nodejs sdk来生成令牌。如果你不知道这些参数是什么:
,然后请参阅本教程和本博客以了解它们的概念。请注意,您还需要向您的广告应用授予 ADF 权限。
最后,您可以调用Pipelines - Create Run REST api 并在header
.
2.另外,我实际上想将 1 个月前的数据从 cosmos DB 备份到 Azure Blob,这可能吗?
如果要备份 Azure Blob 存储数据,请参考此链接。您可以在计划中使用 AzCopy 在阶段备份数据。
推荐阅读
- function - 如何在 Loopback4 中集成一个功能?
- web-services - 如何获得建议的子地区或地区
- javascript - 单独文件中的 FireMonkey WebBrowser1.LoadFromStrings 和 JS 不起作用
- c# - 温莎城堡 - 跟踪注入给定对象的确切实例?
- javascript - Chrome 扩展获取 chrome 页面请求正文详细信息
- c++ - 获得 r 值参考的所有权
- php - 获取行,分解和删除重复项 - PHP
- python - 如何检查批处理池节点在数据工厂中是否空闲
- python - 尝试为 PyTorch 创建自定义 C++/CUDA 函数时出现分段错误
- linux - 在某些具有特定名称模式的目录中查找文件并将其 tar?