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

Microsoft Fabric Data Factory复制活动如何引用REST响应生成动态文件名?

在Microsoft Fabric Data Factory中获取REST API响应字段用于命名文件及后续活动

方法1:用Lookup活动预取REST响应字段

  • 先添加一个Lookup活动,配置和Copy Data活动完全一致的REST API数据源(确保能获取到单条JSON响应,若返回数组,可通过设置限制条数或取第一条数据)
  • Lookup活动执行后,可通过表达式直接提取响应中的字段:
    • 客户名称:@activity('Lookup REST Response').output.firstRow.customer_name
    • 日期字段:@activity('Lookup REST Response').output.firstRow.date_field
  • 把这些表达式直接用到Copy Data活动的目标文件名配置中,比如拼接成:
    concat('customer_', @activity('Lookup REST Response').output.firstRow.customer_name, '_', @activity('Lookup REST Response').output.firstRow.date_field, '.json')
    
  • 后续活动也可以直接引用这些表达式来获取字段值。

方法2:用Web活动调用API并提取字段

  • 添加Web活动,配置REST API的调用参数(请求方法、认证、头部信息等和Copy Data活动保持一致)
  • Web活动的输出中直接包含API响应内容,提取字段的表达式示例:
    • 客户名称:@activity('Web REST Call').output.customer_name
    • 日期字段:@activity('Web REST Call').output.date_field
  • 同样将这些表达式用于Copy Data的目标文件名,后续活动也能直接复用。

方法3:写入文件后通过Notebook提取字段(适用于大数据量场景)

如果REST响应数据量较大,不适合预取,可先写入临时文件,再通过Notebook提取字段:

  1. Copy Data活动先将JSON写入Lakehouse的临时路径,文件名可设为固定值(比如temp_response.json)
  2. 添加Notebook活动,连接目标Lakehouse,编写PySpark代码读取文件并提取字段:
    import json
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder.getOrCreate()
    # 替换为你的Lakehouse路径
    df = spark.read.json("abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>/temp_response.json")
    customer_name = df.select("customer_name").first()[0]
    date_field = df.select("date_field").first()[0]
    
    # 将结果输出给管道
    dbutils.notebook.exit(json.dumps({"customer_name": customer_name, "date_field": date_field}))
    
  3. 在管道中通过@json(activity('Extract JSON Fields').output).customer_name提取字段值,供后续活动使用。

注意事项

  • 确保REST API返回的是结构化JSON,字段路径正确,避免表达式报错
  • Lookup/Web活动的认证配置要和Copy Data活动一致,保证能正常调用API

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:42:39