You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.NET Core代码结合Azure SHIR向ADF管道上传本地文件

解决方案

核心逻辑说明

你要完成的不是直接把文件“上传到管道”,而是通过两个核心动作实现需求:

  • 用.NET Core代码将目标文件写入SHIR所在笔记本的指定本地文件夹(该文件夹是你ADF管道源数据集配置的路径)
  • 调用Azure Data Factory的API触发管道运行,让管道通过SHIR读取该文件夹的文件并复制到Blob存储

步骤1:确认前置配置

  • 确保ADF管道的源数据集已指向SHIR所在笔记本的本地文件夹,且SHIR已关联到该数据集对应的链接服务
  • 确认ADF管道的目标数据集已正确配置为Azure Blob存储的目标容器和路径
  • 确保你的.NET Core程序所在环境能访问SHIR所在笔记本的目标文件夹:如果程序和SHIR在同一机器,直接用本地路径;不在同一机器则需通过网络共享(如SMB)访问

步骤2:.NET Core代码实现流程

2.1 将文件写入SHIR可访问的目录

根据程序和SHIR的部署位置,选择本地路径或网络共享路径写入文件:

using System.IO;

// SHIR所在机器的目标文件夹路径(本地或网络共享路径)
string shirTargetPath = @"D:\ADF_Input_Files";
// 待上传的本地文件路径
string localFilePath = @"C:\Your_Files\sales_data.csv";

// 确保目标目录存在
Directory.CreateDirectory(shirTargetPath);
// 复制文件到SHIR可访问的目录
string destFilePath = Path.Combine(shirTargetPath, Path.GetFileName(localFilePath));
File.Copy(localFilePath, destFilePath, overwrite: true);

2.2 调用ADF API触发管道执行

首先安装NuGet包:Install-Package Azure.DataFactory,然后用以下代码触发管道:

using Azure.Identity;
using Azure.ResourceManager.DataFactory;
using Azure.ResourceManager.DataFactory.Models;

// 你的ADF资源信息
string subscriptionId = "你的订阅ID";
string resourceGroupName = "你的资源组名称";
string dataFactoryName = "你的ADF实例名称";
string pipelineName = "要触发的管道名称";

// 创建ADF管理客户端(用默认Azure凭据,如本地开发用Azure CLI登录凭据)
var adfClient = new DataFactoryManagementClient(new DefaultAzureCredential())
{
    SubscriptionId = subscriptionId
};

// 若管道需要传递参数(比如动态指定文件名),可在这里配置
var runParams = new CreateRunParameters
{
    Parameters = new Dictionary<string, object>
    {
        // ["TargetFileName"] = "sales_data_2024.csv"
    }
};

// 触发管道运行
var runResult = await adfClient.Pipelines.CreateRunWithHttpMessagesAsync(
    resourceGroupName,
    dataFactoryName,
    pipelineName,
    runParams);

Console.WriteLine($"管道已触发,运行ID:{runResult.Body.RunId}");

注意事项

  • 权限配置:运行.NET程序的身份需要具备:
    • SHIR所在文件夹的读写权限(本地用户权限或SMB共享权限)
    • Azure中ADF的管道触发权限(推荐使用托管标识或服务主体,避免硬编码密钥)
  • 文件唯一性:若要避免重复文件,可在写入前检查目标路径是否存在同名文件,或生成带时间戳的唯一文件名
  • 运行状态验证:如果需要确认管道执行结果,可在触发后调用ADF API查询管道运行状态
  • SHIR可用性:确保SHIR处于运行状态且能正常连接到Azure Data Factory

内容的提问来源于stack exchange,提问作者ABC DEF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:38:17